如果你new A了,会去找原型的,但直接操作function就不会去找,一定要用A.log可以这样 A.log=A.prototype.log=funciton(){}; var A = function (){};A.prototype.log = function(){ alert("I am log"); }var c= new A(); c.log(); A.log();
var A = function(){} Function.prototype.log = function(){ alert('log') } A.log()注意区分Fcuntion与function
A.log=A.prototype.log=funciton(){};
var A = function (){};A.prototype.log = function(){
alert("I am log");
}var c= new A();
c.log();
A.log();
Function.prototype.log = function(){
alert('log')
}
A.log()注意区分Fcuntion与function
为嘛直接操作Function对象就不会去找原型呢给个理由亲、、
你直接操作Function对象,找的是Function的原型,不是你自己的原型。例子里的A是Function的一个实例。
还是不太明白你这么写。只要是函数不都有log了么、。、、
是的。看你例子里直接调用A.log么我以为你想要这效果了。找原型只会找构造函数的原型。你例子里的是去原型里找了,不过是去Function的原型里找了。像1L那样new一个C出来,再调用log,才是去A的原型里找,才不会有问题。
}
应该使用var a=new A();
a.log();
A.prototype是一个object,这个object有log方法,而A函数没有,所以A.log()报错。
你也可以使用A.prototype.log().
A.prototype.log 是实例方法,用A的实例调用,即(new A()).log调用。