Javascript原型只使用函数而不是对象文本
更深入地研究对象创建和原型。让我困惑的是,我找不到以下信息 如果我们有以下代码:Javascript原型只使用函数而不是对象文本,javascript,Javascript,更深入地研究对象创建和原型。让我困惑的是,我找不到以下信息 如果我们有以下代码: Dog.prototype.bark = "woof"; function Dog (name){ this.name = name; } function foo (){ console.log('test'); } let bar = {}; console.log(Dog.prototype); console.log(foo.prototype); console.log(bar.p
Dog.prototype.bark = "woof";
function Dog (name){
this.name = name;
}
function foo (){
console.log('test');
}
let bar = {};
console.log(Dog.prototype);
console.log(foo.prototype);
console.log(bar.prototype);
我们得到以下输出(chrome开发工具):
为什么只有函数有隐式创建的原型?因为函数是js中的构造函数。对象不是。您可以调用
newfoo()
,但不能调用newf
。不要混合使用。prototype
和添加到Jonas评论中的prototype:new foo()
或new Dog()
是有效的,但是,new{}
不是。这是因为当使用new
关键字调用函数时,函数隐式充当构造函数。对象文字是对象
的实例,而不是对象
构造函数本身,如果将最后一行更改为console.log(bar.\uuu proto\uu),则它可能是它的副本代码>您可以看到实际的对象原型。