看透JavaScript:原理、方法与实践
上QQ阅读APP看书,第一时间看更新

7.3 关联方法后的this

我们先来看下面的例子。

    function logColor(){
        console.log(this.color);
    }


    function Obj(){}
    var o = new Obj();


    Obj.color = "red";
    o.color = "blue";


    Obj.logColor = logColor;
    o.logColor = logColor;


    Obj.logColor();                   //red
    o.logColor();                     //blue

这个例子中首先定义了一个独立的函数logColor,然后定义了Obj方法对象并使用Obj创建了实例对象o,接着给Obj和o分别添加了color属性和logColor方法属性,logColor属性被直接关联到了独立的函数logColor,这时调用Obj的logColor()就会打印出Obj的color值red,调用实例o的logColor则会打印出o的color值blue。即,谁调用方法this就指向谁。