function funcObj() { }
funcObj.prototype.greet = "hello";
console.log(funcObj.greet) // undefined ???
console.log(funcObj.prototype.greet) // hello
var obj = new funcObj();
console.log(obj.greet); // hello
根据我对原型的理解。如果访问对象的成员,则在该对象不可用时将从原型对象获取它。
我的问题是:
由于Javascript中的函数是对象,为什么funcObj.greet
->未定义,但是obj.greet
->你好?
原型只不过是实例从其继承属性的对象。
因此,它funcObj
是另一个原型的实例(Function
),它从中继承了所有属性。另外,它本身具有一个prototype
可以绑定所需对象的对象,并且一旦调用它构造新的原型funcObj
(即,当您将其与new
键盘一起调用时,如new funcObj()
),就会使用该原型。
因此,funcObj
没有greet
实例称为的成员是完全正常的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句