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