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