首頁 > web前端 > js教程 > 主體

js中this的理解

一个新手
發布: 2017-10-11 09:48:04
原創
1735 人瀏覽過

前言對於沒有使用嚴格模式的情況,this物件才會起作用。 this物件是在運行時,被函數的執行環境所綁定的。

情況1:在全域函數中,this等於window,只有當函數作為某個物件的方法呼叫時,this才會等於那個物件。還不知道什麼是全域函數的請參考這裡點擊開啟連結

情況2:匿名函數的執行環境具有全域性,this通常指向window

例如

var name = "window";

var object = {
   name: "Object name",
   getNameFunc: function () {
        return function (){
            return this.name;
        };
    }
};
console.log(object.getNameFunc() ()); // 输出window
登入後複製

情況3:把外部作用域中的this物件保存在一個閉包能夠存取到的變數裡,可以讓this指向該作用域中的this物件

例如

var name = "window";

var object = {
   name: "Object name",
   getNameFunc: function () {
       var that = this;
        return function (){
            return that.name;
        };
    }
};
console.log(object.getNameFunc() ());  // 输出Object name
登入後複製

情況4:把函數先賦值再執行,this的值不能維持

#例如

var name = "window";

var object = {
    name: "Object name",
    getName: function () {
        return this.name;
    }
};
console.log((object.getName = object.getName) ());  // 输出window
登入後複製

情況5:透過call或apply改變函數的執行環境的,this就會指向其他物件

以上是js中this的理解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板