【发布时间】:2017-11-26 19:54:56
【问题描述】:
我使用不同的方式创建了 2 个对象(object1 和 object2)。 我发现它们之间没有区别,除了它在 Chrome 开发控制台中的显示方式(见下面的截图)
var F;
function create(parent, properties) {
F = function(p) {
for(var i in p){
this[i] = p[i].value;
}
};
F.prototype = parent;
return new F(properties);
}
var prop={ p: { value: 42 } };
var masterObject = {a: "masterObject value"}
var object1 = create(masterObject, prop);
var object2 = Object.create(masterObject, prop);
以下是我的问题:
由于我使用不同的方法来创建对象,对象 - object1 和 object2 之间会有什么区别吗?
从上面的截图(红圈)中可以看出有什么不同?
【问题讨论】:
-
构造函数是不同的。 F 与 Object
-
当我检查两个对象的构造函数时,结果相同:
function Object() { [native code] } -
哇,看起来你的代码给prototype.constructor造成了一些有趣的混乱......查看我的更新答案
标签: javascript oop object prototype