function Base(x, y) { this._def=0,0; this.x=x; this.y=y; }
我想用两种方式创建一个对象:
传递值
var b = new Base(2, 3)
(这是典型的方式)
使用字段默认值“_def”中的值。对于该示例,0应该传递给'x',另一个0传递给'y'。 但我希望在另一个构造函数中使用和调用通用方法。
答案 0 :(得分:0)
如果您在项目中使用jQuery,那么应该是这样的:
function Base(options) {
this._options = $.extend( { x:0, y:0 }, options ) ;
console.log( [this._options.x, this._options.y] );
}
var b = new Base({x:5, y:1});
这将输出
5,1
答案 1 :(得分:0)
我不确定这是你正在寻找的(this._def=0,0
是无效的语法),但你可以尝试这样的事情:
function Base(x, y) {
if (this._def != null) {
this.x = this._def[0];
this.y = this._def[1];
} else {
this.x = x;
this.y = y;
this._def = [0,0];
}
}
然后可以通过以下方式调用:
var obj = { _def = [1, 2] };
obj = Base.call(obj);
现在obj.x
为1,obj.y
为2。