摘要:的指向函數內指向普通函數調用,指向,嚴格模式下是構造函數調用,指向實例對象,原型方法中也是實例對象對象方法調用,指向方法所屬對象,緊挨著的對象事件綁定方法,指向綁定事件對象定時器函數,指向事件處理函數內部的,始終都是點擊的事件源元素數組遍歷
this的指向
函數內this指向
普通函數調用,指向window,嚴格模式下是undefined
構造函數調用,指向實例對象,原型方法中this也是實例對象
對象方法調用,指向方法所屬對象,緊挨著的對象
事件綁定方法,指向綁定事件對象
定時器函數,指向window
事件處理函數內部的this,始終都是點擊的事件源DOM元素
數組遍歷方法(forEach,find等)內部的this都指向window
如果在函數內部調用一個普通函數,該函數內部的this指向的是window
例子
創建一個構造函數Person,這里是xjj接收Person的實例,所以this指向xjj
返回值return簡單類型的時候,不會發生變化。返回值是復雜類型的時候,輸出會發生變化
例子
name定義在全局,相當于window的name,調用handle的時候,this指向window,所以輸出global
不管是在哪里被調用,handle函數的輸出始終是不變的,所以這里的輸出是global
直接輸出obj的name,就是obj
調用foo函數的情況下,后面的local覆蓋了obj,所以obj的name變成了local
argument表示傳入的參數組成的偽數組,argument[0]表示第一個參數,也就是fn
這里得出的結果是undefined,因為argument[0]沒有name這個屬性
如果手動加一個name屬性,就會有值,輸出hehe
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/108415.html
總結call,apply,bind方法的理解使用和區別。 call,apply,bind這三個方法在JavaScript中是用來改變函數調用的this指向。那么改變函數this指向有什么用呢?我們先來看一段代碼 var a= { name:harden, fn:function () { console.log(this.name); } } var b =...
摘要:常用場景以函數形式調用指向指向了以方法形式調用指向調用方法的那個對象指向顏色為紅色構造函數調用指向實例的對象此處分別指向的實例對象控制臺輸出使用對象的方法時指向報錯因為是的一個方法更改錯誤使顏色為調用了這個方法此時的指向此操作將指向的賦給則 THIS常用場景 1、以函數形式調用,this指向window function fn(m,n){ m=2; n=3; console...
摘要:常用場景以函數形式調用指向指向了以方法形式調用指向調用方法的那個對象指向顏色為紅色構造函數調用指向實例的對象此處分別指向的實例對象控制臺輸出使用對象的方法時指向報錯因為是的一個方法更改錯誤使顏色為調用了這個方法此時的指向此操作將指向的賦給則 THIS常用場景 1、以函數形式調用,this指向window function fn(m,n){ m=2; n=3; console...
摘要:常用場景以函數形式調用指向指向了以方法形式調用指向調用方法的那個對象指向顏色為紅色構造函數調用指向實例的對象此處分別指向的實例對象控制臺輸出使用對象的方法時指向報錯因為是的一個方法更改錯誤使顏色為調用了這個方法此時的指向此操作將指向的賦給則 THIS常用場景 1、以函數形式調用,this指向window function fn(m,n){ m=2; n=3; console...
摘要:一等公民對象函數在提指向問題之前,肯定是有必要說明一等公民對象,既然是對象,那么就能像普通的值一樣傳遞。在普通瀏覽器中指向的是在中指向的是全局對象全局環境中或者模塊環境中。即指向或者的第一個參數。第二條規則,指向的不是原文鏈接 1. 一等公民對象——函數 在提this指向問題之前,肯定是有必要說明一等公民對象function ,既然function是對象,那么就能像普通的值一樣傳遞。嗯...
摘要:否則報錯在嚴格模式下,對象的函數中的指向調用函數的對象實例同樣道理,可以推斷出,在嚴格模式下,構造函數中的指向構造函數創建的對象實例。 要點 this的指向在函數定義的時候是確定不了的,只有函數執行的時候才能確定this到底指向誰,實際上this的最終指向的是那個調用它的對象。 this指向的三種情況 情況1:如果一個函數中有this,但是它沒有被上一級的對象所調用,那么this指向的...
閱讀 2337·2019-08-30 15:44
閱讀 1260·2019-08-30 13:01
閱讀 3305·2019-08-30 11:22
閱讀 3093·2019-08-29 15:23
閱讀 1614·2019-08-29 12:22
閱讀 3366·2019-08-26 13:58
閱讀 3439·2019-08-26 12:17
閱讀 3479·2019-08-26 12:16