定义一个“;嵌套的“;JavaScript中的对象构造函数
Define a "nested" object constructor in JavaScript?
是否可以在另一个对象中定义一个对象?我在想这样的事情:
function MyObj(name) {
this.name = name;
function EmbeddedObj(id) {
this.id = id;
}
}
然后我可以创建一个像这样的EmbeddedObj:
var myEmbeddedObj = new MyObj.EmbeddedObj();
奖励积分记忆:Objectception!:o
是,没有。
function MyObj(name) {
this.name = name;
}
MyObj.EmbeddedObj = function EmbeddedObj(id) {
this.id = id;
}
new MyObj.EmbeddedObj(42);
将运行,但可能不会产生"嵌入式对象"的预期结果(请参阅注释)。
注意,在new expr
的情况下,表达式首先求值,因此,在这种情况下,它使用从MyObject.EmbeddedObj
求值的函数对象作为构造函数来创建一个新对象。(表达式中有一条带括号的愚蠢规则,但那是另一回事。)
现在,如果想要"父母"answers"孩子"的关系,可以使用一种更全面的方法:
function Parent (name) {
this.name = name;
var parent = this; // for closure
this.Child = function Child () {
this.Parent = parent;
}
}
// create new parent object
var parent = new Parent();
// each new parent has a different Child constructor and
// any function-object can be used as a constructor
var child = new parent.Child();
// true: child is "bound" to parent
child.Parent === parent;
function MyObj(name) {
this.name = name;
}
MyObj.EmbeddedObj = function(id) {
this.id = id;
}
var myEmbeddedObj = new MyObj.EmbeddedObj();
这看起来像你想要的吗?
以下是嵌套构造函数的示例
function cimdb(name,review,year) {
function nestedConstructor(name,review,year) {
this.name = name;
this.review = review;
this.year = year
};
this.name = name;
this[name] = new nestedConstructor(name,review,year);
}
var lionking = new cimdb("The Lion King", "The lion King review ..", 2015);
我想这就是您所说的嵌套对象构造函数的意思。
在构造函数中嵌套其他对象的最简单方法是创建其字段,然后在调用构造函数时创建一个新对象下面是一个例子:
function Product(name, price, category, producer) {
this.name = name;
this.price = price;
this.category = category;
// nested constructor
this.producer = producer;
}
function Producer(contributor, address) {
this.contributor = contributor;
this.address = address;
}
let prod1 = new Product("Milk", 2.5, "Dairy", new Producer("Nestle", "Warszawa"));
相关文章:
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 循环遍历以数组为值的Javascript对象
- 从ajax请求中获取javascript对象
- 如何从对象的原型方法访问JavaScript对象属性
- 将XML转换为普通的旧JavaScript对象
- 通过引用传递JavaScript对象
- javascript对象操作:根据指定条件选择属性
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 如何在异步函数中使用javascript对象
- 临时Javascript对象
- 如何在ASP中为用户控件添加Javascript对象网
- 使用数组向下搜索Javascript对象
- Rails将JavaScript对象存储到Model的有效方式
- JavaScript对象不是从原型链继承的
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- SetInterval在javascript对象中表现怪异
- Javascript 对象和 this 关键字
- 如何在不知道关键字的情况下访问javascript对象值
- 在 JavaScript 对象中设置要使用的运算符的属性
- 如何搜索JavaScript对象并更改值