Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript原型只使用函数而不是对象文本_Javascript - Fatal编程技术网

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),则它可能是它的副本您可以看到实际的对象原型。