У меня есть 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
. Надеюсь, я даю себе понять, возможно, я ощущаю что-то очень очевидное, но я новичок, поэтому, пожалуйста, нужна ваша помощь!
Спасибо заранее.