[英]array adding function in object literal notation
这是我正在使用的代码,不太确定如何使用文字符号,我必须以某种方式将currentActiveCategories
传递给函数。 不确定这是否是首选的方法,不想学习坏习惯。
var primaryCare = {
currentActiveCategories : [ "1", "2"],
currentValue : addValues(this.currentActiveCategories)
}
function addValues(activeCategories) {
tempTotal;
for(int i = 0; i < activeCategories.length; i++){
tempTotal += activeCategories[i];
}
return tempTotal;
}
目前你的对象字面创建具有两个属性,对象currentActiveCategories
,这是一个数组,并且currentValue
,被设定为调用的结果而addValues()
此时的对象常量进行评价。 您正在尝试使用this.currentActiveCategories
调用该函数,该函数将是undefined
,因为this
它不等于该对象。
如果想要有一个可以随时返回当前总数的函数,你可以这样做:
var primaryCare = {
currentActiveCategories : [ "1", "2"],
currentValue : function () {
var tempTotal = "";
for(var i = 0; i < this.currentActiveCategories.length; i++){
tempTotal += this.currentActiveCategories[i];
}
return tempTotal;
}
}
primaryCare.currentValue(); // returns "12", i.e., "1" + "2"
总是用var
声明你的变量或者它们将变成全局变量 - 请注意你不能在JS中声明一个int
。 在开始向其添加字符串之前,需要将tempTotal
初始化为空字符串,或者代替"12"
您将得到"undefined12"
。
当调用一个功能作为一个对象的一个方法,如primaryCare.currentValue()
如上所示),则该函数内this
将被设置到该对象。
将值添加为字符串对我来说似乎有点奇怪。 如果您想使用数字并获得数字总数,您可以这样做:
var primaryCare = {
currentActiveCategories : [ 1, 2], // note no quotes around the numbers
currentValue : function () {
var tempTotal = 0;
for(var i = 0; i < this.currentActiveCategories.length; i++){
tempTotal += this.currentActiveCategories[i];
}
return tempTotal;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.