Javascript 默认情况下使用值创建对象
我想用两种方法创建一个对象:Javascript 默认情况下使用值创建对象,javascript,constructor,Javascript,Constructor,我想用两种方法创建一个对象: 传递值 function Base(x, y) { this._def=0,0; this.x=x; this.y=y; } (这是典型的方式) 使用字段默认值“_def”中的值。对于该示例,0应传递给“x”,另一个0应传递给“y”。 但我希望在另一个构造函数中使用和调用通用方法 如果您在项目中使用jQuery,下面是它的用法: var b = new Base(2, 3) 这将输出 function Base(options) { this._opt
- 传递值
(这是典型的方式)function Base(x, y) { this._def=0,0; this.x=x; this.y=y; }
- 使用字段默认值“_def”中的值。对于该示例,0应传递给“x”,另一个0应传递给“y”。 但我希望在另一个构造函数中使用和调用通用方法
var b = new Base(2, 3)
这将输出
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});
我不确定这是否是您想要的(
this.\u def=0,0
的语法无效),但您可以尝试以下方法:
5,1
可通过以下方式调用:
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];
}
}
现在,
obj.x
是1,obj.y
是2。在JavaScript中,您只能有一个构造函数(按照惯例,您使用的构造函数是对象函数本身)。然后,可以使用另一个构造函数来传递字段“_def”和另一个构造函数?添加默认值(基本,基本._def)
var obj = { _def = [1, 2] };
obj = Base.call(obj);