Javascript对象属性初始化
如何使用函数初始化Javascript对象属性初始化,javascript,Javascript,如何使用函数初始化javascript对象属性? 下面是我尝试但失败的一个: var myObject = { quatntity: 3, toalAmount: function () { return 599*this.quatntity; } 请您建议正确的方法来执行相同的操作。您需要创建一个getter来读取文本同级值 您忘记了get操作符: var ob={ quatntity: 3,
javascript
对象属性?
下面是我尝试但失败的一个:
var myObject = {
quatntity: 3,
toalAmount: function () {
return 599*this.quatntity;
}
请您建议正确的方法来执行相同的操作。您需要创建一个getter来读取文本同级值 您忘记了
get
操作符:
var ob={
quatntity: 3,
get toalAmount () {
return 599*this.quatntity;
}
};
alert(JSON.stringify(ob));
它们的优点在于,toalAmount
的值会随着其他值的更改而自我更新,但它仍然可以序列化
很多人忘记了getter,或者认为它是ES6的东西(看起来有点像),但他们从IE8/ES5开始就存在了
您可能还想简单地将其作为一种传统方法,即您需要使用“()”的那种方法,特别是如果您不需要JSON来包含该值。您缺少一个右括号:
var myObject = {
quatntity: 3,
toalAmount: function () {
return 599*this.quatntity;
}
}
现在,您可以通过调用myObject.toalAmount()
或者,您可以设置一个get
操作符(如dandavis建议的那样)以将值检索为myObject.toalAmount
旁注-您应该检查拼写:
- 数量=数量
- toalAmount=总金额
- 您正在以文本方式初始化对象。您可以使用以下函数来执行此操作:
var myObject = function(){
var quantity = 3; //private variable
return {
totalAmount: function(){
return 599*quantity;
}
}
}()
请注意函数末尾的(),因此我们调用它并将结果分配给MyObject。如果要修改quantity变量,可以在返回值中创建函数setter:
var myObject = function(){
var quantity = 3; //private variable
return {
totalAmount: function(){
return 599*quantity;
},
setQuantity: function(value){
quantity = value;
}
}
}()
您还可以创建构造函数并使用new
来实例化新对象:
var MyObject = function(){
this.quantity = 3; //public variable
this.totalAmount = function(){
return 599*this.quantity;
}
}
var myObject = new MyObject();
myObject.totalAmount(); //1797
构造函数通常用大写字母书写
当您使用函数创建对象时,带有
this.
前缀的变量将是公共的,var
将是私有的我在这里看不到任何问题;什么是你认为不应该发生的?