首頁 web前端 js教程 關於this的相關問題

關於this的相關問題

May 21, 2018 pm 01:35 PM
this 全域變數 問題

在學習中經常遇到this問題,本篇將會講解其相關問題。

this作為全域物件window的幾個情況

作為函數呼叫的this

#作為內部巢狀函數的this

在setTimeout、setInteval中this仍然是全域變數window

this為非全域變數的幾個情況

建構子(建構函數就是透過函數產生一個新的對象,這時this指的為這個新對象)

做為物件方法呼叫,如:

var obj1 = {    name: 'Byron',    fn : function(){        console.log(this);
    }
};
obj1.fn(); // obj1var fn2 = obj1.fn;
fn2();  //此时this仍然指的是全局对象window
登入後複製

DOM物件綁定事件this代表來源DOM物件(低版本IE下有bug,也指向window)

#使用bind函數,綁定原函數,此時this指的是傳入bind的第一個參數。如:

var obj1 = {    name: 'Byron',    fn : function(){        console.log(this);
    }
};
obj1.fn(); //obj1var fn2 = obj1.fn;
登入後複製
fn2();  //此时this仍然指的是全局对象windowvar fn3 = obj1.fn.bind(obj1);fn3();  //此时this指的为obj1(此方法比较灵活,可利用此方法将所要传送给this 的参数指定为bind的第一个对象)
apply和call设置this,如:
fn.call(context,num1,num2...);fn.apply(context,numArray)
登入後複製

第一個參數為this對象,不同點是call接受參數列表,apply接受參數數組。

caller,如果一個函數f是在全域作用域內被調用的,則f.caller為null,相反,如果一個函數是在另外一個函數作用域內被調用的,則f.caller指向調用它的那個函數.可以簡單的理解為caller指的是他的父函數。如:

function fn(){    console.log(fn.caller); 
    function fn2(){        console.log(fn2.caller)
    }
    fn2()
}
登入後複製
fn();
callee,当函数被调用的时候arguments.callee(匿名函数的时候很好用,可以调用自身)
var i = 1;window.onclick = function(){    console.log(1);    if(i<5){        i++;        setTimeout(arguments.callee,200);    }}
登入後複製

本篇講解了this的相關問題,更多相關內容請關注php中文網。

相關推薦:

JS陣列、字串及數學函數

關於JS時間物件與遞迴問題

一些CSS樣式基礎知識

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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

C++ 函數的局部變數和全域變數有什麼不同? C++ 函數的局部變數和全域變數有什麼不同? Apr 19, 2024 pm 03:42 PM

C++局部變數和全域變數的差異:可見性:局部變數僅限於定義函數,而全域變數在整個程式中可見。記憶體分配:局部變數在堆疊上分配,而全域變數在全域資料區分配。作用域:局部變數在函數內,而全域變數在整個程式中。初始化:局部變數在函數呼叫時初始化,而全域變數在程式啟動時初始化。重新創建:局部變數在每次函數呼叫時重新創建,而全域變數僅在程式啟動時創建。

聚類演算法中的聚類效果評估問題 聚類演算法中的聚類效果評估問題 Oct 10, 2023 pm 01:12 PM

聚類演算法中的聚類效果評估問題,需要具體程式碼範例聚類是一種無監督學習方法,透過對資料進行聚類,將相似的樣本歸為一類。在聚類演算法中,如何評估聚類的效果是一個重要的問題。本文將介紹幾種常用的聚類效果評估指標,並給出對應的程式碼範例。一、聚類效果評估指標輪廓係數(SilhouetteCoefficient)輪廓係數是透過計算樣本的緊密度和與其他簇的分離度來評估聚類效

解決C++程式碼中出現的「error: redefinition of class 'ClassName'」問題 解決C++程式碼中出現的「error: redefinition of class 'ClassName'」問題 Aug 25, 2023 pm 06:01 PM

解決C++程式碼中出現的「error:redefinitionofclass'ClassName'」問題在C++程式設計中,我們常常會遇到各種各樣的編譯錯誤。其中一個常見的錯誤是「error:redefinitionofclass'ClassName'」(類別『ClassName』的重定義錯誤)。這個錯誤通常出現在同一個類別被定義了多次的情況下。本文將

教你如何診斷常見問題的iPhone故障 教你如何診斷常見問題的iPhone故障 Dec 03, 2023 am 08:15 AM

iPhone以其強大的性能和多方面的功能而聞名,它不能倖免於偶爾的打嗝或技術困難,這是複雜電子設備的共同特徵。遇到iPhone問題可能會讓人感到沮喪,但通常不需要警報。在這份綜合指南中,我們旨在揭開與iPhone使用相關的一些最常遇到的挑戰的神秘面紗。我們的逐步方法旨在幫助您解決這些常見問題,提供實用的解決方案和故障排除技巧,讓您的裝置恢復到最佳工作狀態。無論您是面對一個小故障還是更複雜的問題,本文都可以幫助您有效地解決這些問題。一般故障排除提示在深入研究具體的故障排除步驟之前,以下是一些有助於

解決jQuery無法取得表單元素值的方法 解決jQuery無法取得表單元素值的方法 Feb 19, 2024 pm 02:01 PM

解決jQuery.val()無法使用的問題,需要具體程式碼範例對於前端開發者,使用jQuery是常見的操作之一。其中,使用.val()方法來取得或設定表單元素的值是非常常見的操作。然而,在一些特定的情況下,可能會出現無法使用.val()方法的問題。本文將介紹一些常見的情況以及解決方案,並提供具體的程式碼範例。問題描述在使用jQuery開發前端頁面時,有時候會碰

弱監督學習中的標籤獲取問題 弱監督學習中的標籤獲取問題 Oct 08, 2023 am 09:18 AM

弱監督學習中的標籤獲取問題,需要具體程式碼範例引言:弱監督學習是一種利用弱標籤進行訓練的機器學習方法。與傳統的監督學習不同,弱監督學習只需利用較少的標籤來訓練模型,而不是每個樣本都需要有準確的標籤。然而,在弱監督學習中,如何從弱標籤中準確地獲取有用的信息是一個關鍵問題。本文將介紹弱監督學習中的標籤獲取問題,並給出具體的程式碼範例。弱監督學習中的標籤獲取問題簡介:

機器學習模型的泛化能力問題 機器學習模型的泛化能力問題 Oct 08, 2023 am 10:46 AM

機器學習模型的泛化能力問題,需要具體程式碼範例隨著機器學習的發展和應用越來越廣泛,人們越來越關注機器學習模型的泛化能力問題。泛化能力指的是機器學習模型對未標記資料的預測能力,也可以理解為模型在真實世界中的適應能力。一個好的機器學習模型應該具有較高的泛化能力,能夠對新的數據做出準確的預測。然而,在實際應用中,我們經常會遇到模型在訓練集上表現良好,但在測試集或真實

如龍8酒類大師考試問題有哪些 如龍8酒類大師考試問題有哪些 Feb 02, 2024 am 10:18 AM

如龍8酒類大師考試所涉及的問題包括哪些?對應的答案是什麼?如何快速通過考試?酒類大師考試活動有許多需要回答的問題,我們可以參考答案來解決。這些問題都牽涉到酒的知識。如果需要參考,讓我們一起來看看如龍8酒類大師考試問題答案的詳細解析!如龍8酒類大師考試問題答案詳解1、關於「酒」的問題。這是一種管由王室建立的蒸餾灑廠生產的蒸餾酒,以夏威夷大量種植的甘盤的糖分為原料釀製。請問這種酒叫什麼?答:蘭姆酒2、關於「酒」的問題。圖片上是一種使用乾琴灑和乾苦艾酒調配而成的酒。它的特點是加入了橄欖,被譽為「雞尼酒

See all articles