自定义javascript对象作为其他自定义javascript对象的属性
我想创建一些自定义javascript对象,其中一些具有其他对象的属性。我不确定这样做的语法是什么。下面是我的伪代码,其中包含一个person对象和一个order对象。order对象有一个我希望为person对象类型的属性。这在javascript中可能吗?如果可能,有人能给我一个基本的例子吗?谢谢自定义javascript对象作为其他自定义javascript对象的属性,javascript,Javascript,我想创建一些自定义javascript对象,其中一些具有其他对象的属性。我不确定这样做的语法是什么。下面是我的伪代码,其中包含一个person对象和一个order对象。order对象有一个我希望为person对象类型的属性。这在javascript中可能吗?如果可能,有人能给我一个基本的例子吗?谢谢 var person { name: "John", gender: "M", age: 3 } var order { customer: person, /
var person {
name: "John",
gender: "M",
age: 3
}
var order {
customer: person, /*the property name is customer but of type person - is this possible?*/
total: 100
}
您可以这样做:
var person = {
name: "John",
gender: "M",
age: 3
};
var order = {
customer: person,
total: 100
};
这也会过去。您缺少“=”符号。您可以这样做:
var person = {
name: "John",
gender: "M",
age: 3
};
var order = {
customer: person,
total: 100
};
这也会过去。您缺少“=”符号。您几乎是正确的;您所需要的只是包含一些“=”
var person = {
name: "John",
gender: "M",
age: 3
}
var order = {
customer: person, /*the property name is customer but of type person - is this possible?*/
total: 100
}
你几乎是对的;您所需要的只是包含一些“=”
var person = {
name: "John",
gender: "M",
age: 3
}
var order = {
customer: person, /*the property name is customer but of type person - is this possible?*/
total: 100
}
您的代码几乎没有问题(缺少将匿名对象分配给变量的=):
您的代码几乎没有问题(缺少将匿名对象分配给变量的=):
当然,差不多就是这样。您的语法有点不正确,但只有一点点
这是你的例子:当然,差不多就是这样。您的语法有点不正确,但只有一点点 以下是您的示例:考虑构造函数:
function Person( name, gender, age ) {
this.name = name;
this.gender = gender;
this.age = age;
}
function Order( customer, total ) {
this.customer = customer;
this.total = total;
}
用法:
var person1 = new Person( 'John', 'M', 3 );
var order1 = new Order( person1, 100 );
构造函数充当类。您可以通过new
调用它们来创建新实例(人员和订单)。考虑构造函数:
function Person( name, gender, age ) {
this.name = name;
this.gender = gender;
this.age = age;
}
function Order( customer, total ) {
this.customer = customer;
this.total = total;
}
用法:
var person1 = new Person( 'John', 'M', 3 );
var order1 = new Order( person1, 100 );
构造函数充当类。您可以通过
new
调用它们来创建新实例(人员和订单)。+1用于O.O.解决方案。。。但是如果可以的话,我建议使用一个框架(比如Mootools)而不是使用原生的jso.O.,基本上是一样的,但是它可以省去将复杂类型作为属性的麻烦。在本例中,如果您执行person1.age=5
您还需要更改order1变量,如果不更改,以后可能会给您带来一些麻烦careful@pleasedontbelong它不会更改order1
对象。此对象有一个customer
属性,该属性是对与订单关联的人员的引用。一个特定的人(例如本例中的“约翰”)由一个对象表示。该人发出的所有命令都引用了该对象。我不确定这种设计模式以后会如何导致问题。=P srry我在考虑这个问题,但在这个示例中,它们直接在原型中设置属性,而不是在构造函数中设置属性(就像您所做的那样)。。我忘记了构造函数中的这个指向实例,并且不影响prototype@pleasedontbelong这就是为什么您通常只希望原型中有函数(所有实例共享的实例方法)。实例特定信息直接分配给实例,或通过闭包绑定到其特权方法。O.O.解决方案为+1。。。但是如果可以的话,我建议使用一个框架(比如Mootools)而不是使用原生的jso.O.,基本上是一样的,但是它可以省去将复杂类型作为属性的麻烦。在本例中,如果您执行person1.age=5
您还需要更改order1变量,如果不更改,以后可能会给您带来一些麻烦careful@pleasedontbelong它不会更改order1
对象。此对象有一个customer
属性,该属性是对与订单关联的人员的引用。一个特定的人(例如本例中的“约翰”
)由一个对象表示。该人发出的所有命令都引用了该对象。我不确定这种设计模式以后会如何导致问题。=P srry我在考虑这个问题,但在这个示例中,它们直接在原型中设置属性,而不是在构造函数中设置属性(就像您所做的那样)。。我忘记了构造函数中的这个指向实例,并且不影响prototype@pleasedontbelong这就是为什么您通常只希望原型中有函数(所有实例共享的实例方法)。实例特定信息直接分配给实例,或通过闭包绑定到其特权方法。