什么是this 改變this指向的方法

this 是什么 ?

this是包含它的函數(shù) 作為方法被調(diào)用時 所屬的對象。

function arr(){
     console.log(this); //window
 }
arr();  //window

this 指向 window 的情況

全局下調(diào)用函數(shù): this指向window

    function foo() {
        console.log(this); // window
    }

    foo();

定時器與延時器中的this

setInterval(function () {
    console.log(this); // window
 });

setTimeout(function () {
    console.log(this); // window
});

自執(zhí)行函數(shù)

(function () {
    console.log(this); // window
})()

閉包

    function arr() {
        return function () {
            console.log(this); // window
        }
    }

    var boo = arr();
    boo(); // 最后是window調(diào)用了這個函數(shù)

改變 this 指向的三種方法

通常情況下,我們想使用其它環(huán)境變相下的狀態(tài),這就需要借助this來實現(xiàn),常用改變this指向的有以下幾種方式可以實現(xiàn)

call()

語法:
函數(shù).call(this, 參數(shù)1, 參數(shù)2, ...)
會立即執(zhí)行該函數(shù)

    var arr = {
        name: '胖子',
        fn(a, b) {
            console.log(this.name, a, b);  // 瘦子 a b
        }
    }

    var abb = {
        name: '瘦子',
    }

    arr.fn.call(abb, 'a', 'b');    //瘦子 a b

apply()

語法:
函數(shù).apply(this, [參數(shù)1, 參數(shù)2, ...])
會立即執(zhí)行該函數(shù)

   var arr = {
        name: '胖子',
        fn(a, b) {
            console.log(this.name, a, b);  // 瘦子 a b
        }
    }

    var abb = {
        name: '瘦子',
    }

    arr.fn.apply(abb, 'a', 'b');    //瘦子 a b

bind()

函數(shù).bind(this, 參數(shù)1, 參數(shù)2,...);
不會立即執(zhí)行,返回一個新的函數(shù),函數(shù)體內(nèi)的this指向傳入的對象,參數(shù)以逗號隔開,并且會自動拼接, bind 跟call相似,只不過后面多了個 ()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.概念 在JavaScript中,this 是指當(dāng)前函數(shù)中正在執(zhí)行的上下文環(huán)境,因為這門語言擁有四種不同的函數(shù)調(diào)...
    BluesCurry閱讀 1,236評論 0 2
  • 函數(shù)和對象 1、函數(shù) 1.1 函數(shù)概述 函數(shù)對于任何一門語言來說都是核心的概念。通過函數(shù)可以封裝任意多條語句,而且...
    道無虛閱讀 4,943評論 0 5
  • 前言 面試官出很多考題,基本都會變著方式來考察this指向,看候選人對JS基礎(chǔ)知識是否扎實。讀者可以先拉到底部看總...
    若川i閱讀 1,178評論 0 10
  • 涵義 this關(guān)鍵字是一個非常重要的語法點。毫不夸張地說,不理解它的含義,大部分開發(fā)任務(wù)都無法完成。 首先,thi...
    許先生__閱讀 667評論 0 4
  • 時差黨,美高生,坐標(biāo)加州。 喜歡看書和寫作,酷愛風(fēng)花雪月。 悲觀主義者,周期性焦慮。 對股市感興趣。未來打算去念經(jīng)...
    眠舊時書閱讀 253評論 0 0

友情鏈接更多精彩內(nèi)容