Javascript 在内部函数中消除这种歧义

Javascript 在内部函数中消除这种歧义,javascript,Javascript,内部函数有时需要引用外部函数的。JavaScript是否有一个广泛使用的习惯用法?我想出了一个解决方案,将这个赋值给另一个变量: Object.defineProperty(Array.prototype, 'set', { enumerable: false, value: function (a) { this.length = 0 var this1 = this a.forEach(function (x) {

内部函数有时需要引用外部函数的
。JavaScript是否有一个广泛使用的习惯用法?我想出了一个解决方案,将
这个
赋值给另一个变量:

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

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

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

似乎还建议使用

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


在过去,我也见过人们使用
self

我个人使用
self
,因为它对我来说似乎比
更具描述性,但这显然只是个人偏好,你喜欢什么名字。更重要的是选择一个约定并坚持它,这样您的代码是一致的。如果您使用的是其他人编写的代码,请使用他们的约定来保持一致性。@jfriend00+1完全同意。一致性为王。