【发布时间】:2011-06-12 04:44:21
【问题描述】:
我有一个这样的 JavaScript 构造函数:
function Box(obj) {
this.obj = obj;
}
我想将一个对象作为这样的参数传递:
var box = new Box({prop1: "a", prop2: "b", prop3: "c"})
然后给我这样的东西:
box.obj.prop1
box.obj.prop2
box.obj.prop3
但我希望属性直接位于对象上,如下所示:
box.prop1
box.prop2
box.prop3
我知道我可以这样做:
function Box(obj) {
this.prop1 = obj.prop1;
this.prop2 = obj.prop2;
this.prop3 = obj.prop3;
}
但这并不好,因为我的构造函数必须在对象参数的属性名称之前“知道”。我想要的是能够将不同的对象作为参数传递,并将它们的属性直接分配为构造函数创建的新自定义对象的属性,所以我得到box.propX 而不是box.obj.propX。希望我说清楚了,也许我正在测量一些非常明显的东西,但我是新手,所以请需要你的帮助!
提前致谢。
【问题讨论】:
-
也许使用原型?
标签: javascript jquery object constructor