1

最近我在学习制作javascript类,我看到其他人这样制作类

var item = {
     'a':{'b':1000,'c':2000,'d':3000} , //how to make a variable become an array?
     myfunction : function(){
         console.log(item.a.b); //and output item.a[1]?
     }
 };
 item.myfunction();

但是可以将变量设为a数组吗?并输出一个这样的变量item.a[1]?我试过了

var a=new Array('1000','2000','3000') 但是错误,我需要正确的语法。

4

3 回答 3

2
var item = {
    'a': [1000, 2000, 3000],
    myfunction: function () {
        console.log(this.a[1]);
    }
};

但这不是一个类,也没有“变量 a”。

于 2012-11-24T03:58:20.550 回答
1
'a':[1000,2000,3000]

console.log(item.a[0]); // 1000
console.log(item.a[2]); // 3000

阅读更多:http ://www.elated.com/articles/javascript-array-basics/

于 2012-11-24T03:58:10.537 回答
0

您有两种方法,具体取决于您是将“a”转换为数组还是只想将“a”转换为数组。

第一种方法是通过函数运行它

function toArray(object) {
    var array = new array();
    for (key in object) {
        if (object.hasOwnProperty(key)) {
            array.push(object);  // This is alternative for indexed array
            array[key] = object; // This is for an associative array
        }
    }
    return array;
}

也许让你的“类”调用这个函数并将返回值分配给“a”

var item = {
    'a':{'b':1000,'c':2000,'d':3000} , //how to make a variable become an array?
    myfunction : function(){
        this.a = toArray(this.a);
        console.log(this.a[1]) // If you do indexed
        console.log(this.a.b); // If you do associative
    }
};

item.myfunction();

@ahren 解释了第二种方法,它只是通过 [...] 值而不是 {...} 将“a”定义为数组

你也可以查看我自己提出的关于 JavaScript 中 OOP 的问题,从 TJ 那里得到了关于私有方法的很好的回复。

JavaScript OOP 陷阱

不知道这是否是您想要的,但应该可以。

于 2012-11-24T07:39:22.693 回答