javascript - myFunc.prototype 与 new myFunc().prototype 之间的区别

标签 javascript

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/

相关文章:

javascript - 如何定义变化的范围名称?

javascript - 如何在React中调用api之前设置状态

javascript - 使用 ignorecase 在对象中查找键

javascript - 获取 JSON 中的对象总数,但 Javascript Object.keys().length 返回未定义

javascript - Highcharts 多个堆叠列

javascript - 移动到外部组件,直到到达具有特定属性的组件

javascript - 点击按钮,html的overflow-y变为隐藏,如果再次点击,又恢复可见

javascript - 我可以将我的node_modules文件夹移动到另一个项目吗?

JavaScript 数组

javascript - ES6 导入 - 为字符串成员添加别名?