function myFunction() {};
myFunction.prototype.foo = "bar";
var myFuncInstance = new myFunction();
console.log('myFunction.foo: ' + myFunction.foo); // Prints undefined
console.log('myFuncInstance.foo: ' + myFuncInstance.foo); // Prints bar
为什么 myFunction.foo
在这里打印 undefined
?我已经将属性 foo 设置为 myFunction.prototype.foo = "bar"
。
最佳答案
在这种情况下,myFunc
不是对象,它表示对象的类。这意味着您可以使用 new
关键字创建具有与类的 prototype
相同属性的对象。这并不意味着您在函数本身上获得了一系列新的属性。
按照您的示例,这将起作用:
function myFunction() {};
myFunction.prototype.foo = "bar";
var myFuncInstance = new myFunction();
console.log('myFunction.prototype.foo: ' + myFunction.prototype.foo);
console.log('myFuncInstance.foo: ' + myFuncInstance.foo);
关于javascript - myFunc.prototype 与 new myFunc().prototype 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53909505/