简单对象文字的最佳实践:使用“那个”或对象的名称?

时间:2013-09-20 16:19:41

标签: javascript

假设有一个简单的对象文字名称永远不会改变:

var car = {
    wheels : 4,
    construct : function() {
        var that = this;
        setTimeout(function() {
            console.log(that.wheels);
            console.log(car.wheels);
        }, 500);
    }
};

我的问题是:哪种方式更好?通过对象的名称引用或创建一个新变量(可能需要一些时间和内存,并且必须在多个函数中进行探测)?

1 个答案:

答案 0 :(得分:2)

在对象中,您应始终通过this(或其副本,例如that,如果需要)引用该对象,以防止以下破坏:

var car = ...

// do stuff

car = undefined;   // or anything else, perhaps by a code hacker in the JS console

// class is now broken

您应该将碰巧在外部上提供给您的对象的变量名称视为未知,并且可能会发生变化。

其他人可能会将其称为别的东西,可能有多个名称,名称可能突然指向其他一些对象。这些变量是为了对象的引用“所有者”的利益,而不是对象本身。