功能对象原型

维格涅什
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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章