【发布时间】:2017-12-21 05:57:55
【问题描述】:
当我运行以下代码时
var ExtendedObject = function() {
this.standard = 5;
};
Object = ExtendedObject.bind(Object);
var p = new Object();
console.dir(p.standard);
,输出为
5
正如预期的那样。
如果我将变量 p 实例化为像这样的对象字面量:
var ExtendedObject = function() {
this.standard = 5;
};
Object = ExtendedObject.bind(Object);
var p = {};
console.dir(p.standard);
结果是
未定义
我正在尝试找到一种方法来修改 Object 的构造函数,以便我可以为所有正在创建的新对象添加一些标准内容。
【问题讨论】:
-
当
var p = {};为空时,结果将是未定义的显然,是的,试试var p = Object它会工作 -
.bind(Object)应该做什么? -
构造函数中的
this与对象方法中的this有“定义”不同。构造函数中的this总是指要实例化的新对象。因此,您不能将bind用于任何模棱两可的上下文。