为什么这个内部工作

时间:2014-04-20 04:26:34

标签: javascript oop

我知道这有效,但为什么会有效?嵌套this.method是将自身附加到主对象还是将其自身附加到非嵌套的this.method?

function device(){
    this.disconnect = function(){
        this.disconnected = function(){
             console.log("Disconnected from: " + self.name);
        }
    bluetooth.disconnect(this.disconnected,onBlueToothDisableError);
    }
}

是否有任何参考指向我的最佳做法?

1 个答案:

答案 0 :(得分:1)

对于this,在函数定义的所有位置和方式都无关紧要。对于每次调用,this 由函数的调用方式定义。

您提供的代码有效,因为self引用全局对象,name是浏览器中窗口全局对象的属性,是表示窗口名称的字符串。