在内部函数中消除歧义

时间:2014-07-04 04:00:02

标签: javascript

内部函数有时需要引用外部函数的this。 JavaScript是否有广泛使用的习惯用法?我提出了一个解决方案,涉及将this分配给另一个变量:

Object.defineProperty(Array.prototype, 'set', {
    enumerable: false,
    value: function (a) {
        this.length = 0
        var this1 = this
        a.forEach(function (x) {
            this1.push(x)
        })
    }
})

但我不确定这是否是最干净或最惯用的解决方案。

1 个答案:

答案 0 :(得分:1)

我个人使用that作为变量名而不是this1,但除此之外,它还是干净的,传统的和惯用的Javascript。

Douglas Crockford似乎也建议使用that

  

按照惯例,我们创建一个私有变量。这是用来制作的   私有方法可用的对象。这是一个解决方法   ECMAScript语言规范中的错误导致此错误   内部功能设置不正确。

过去,我也看到有人使用self