官术网_书友最值得收藏!

7.2 this的含義

很多開發者對JS中的this理解得不是很清楚,很多時候會因為不正確地使用this而造成不必要的錯誤。下面我們就來給大家介紹JS中的this。

要正確理解this首先要將我們前面學習過的三種子類型區分清楚。這三種子類型是不可以相互調用的,只有在區分清楚這三種子類型之后才可能正確理解this的含義。區分清楚三種子類型之后再理解this就非常簡單了,只需要記住一句話就可以了,那就是“誰直接調用方法this就指向誰”。也就是說方法的點前面的對象就是this,只要記住這一原則就不會對this的使用產生錯誤了。我們來看下面的例子。

    var color = "red";
    function Obj(){
        var color = "black";
    }
    Obj.color = "green";
    Obj.prototype.logColor = function(){
        console.log(this.color);
    }
    var o = new Obj();
    o.color = "blue";
    o.logColor();             //blue

這個例子中一共有4個color,一個是全局變量,一個是Obj的局部變量,一個是Obj的屬性,還有一個是Obj創建的實例對象o的屬性。logColor方法是Obj的prototype中的方法屬性,其中打印了this.color的值。在調用o.logColor()時,按照前面給大家介紹的原則很容易就可以判斷出這里會使用實例對象o中的color屬性,也就是blue,這是因為logColor方法是被o對象直接調用的。

主站蜘蛛池模板: 新宾| 亚东县| 吴堡县| 黔东| 建宁县| 蓬安县| 阿瓦提县| 垦利县| 长寿区| 观塘区| 黑龙江省| 六安市| 镇原县| 盐山县| 阳城县| 榆树市| 兴安盟| 藁城市| 叙永县| 德保县| 龙川县| 济阳县| 六安市| 滁州市| 阿勒泰市| 平罗县| 咸阳市| 海丰县| 蛟河市| 区。| 九江县| 游戏| 清徐县| 民乐县| 大同县| 祁东县| 乌拉特后旗| 本溪市| 长葛市| 河西区| 固阳县|