Har*_*ish 5 javascript prototype
var protoRabbit = {size: "small"};
var fastRabbit = Object.create(protoRabbit);
console.log(Object.getPrototypeOf(fastRabbit));
Run Code Online (Sandbox Code Playgroud)
上面的代码段打印:
对象{size:"small"}
这不应该打印protoRabbit {size:"small"}吗?我的理解中缺少什么?
在对象前面打印的名称是构造函数的名称.您的对象protoRabbit具有构造函数Object,因为您使用对象文字创建此对象:
var protoRabbit = {size: "small"};
Run Code Online (Sandbox Code Playgroud)
如果希望此对象具有不同的构造函数,则必须使用自己的构造函数:
function Constr() {
this.size = "small";
}
var protoRabbit = new Constr();
var fastRabbit = Object.create(protoRabbit);
console.log(Object.getPrototypeOf(fastRabbit)); //Constr { size: "small" }
Run Code Online (Sandbox Code Playgroud)
编辑
我不得不同意Demurgos的回答,结果console.log(obj);取决于浏览器的实现.因此,从浏览器到浏览器可能会有所不同,并且(显然)有时甚至可以在一个浏览器(链接)内变化.
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |