五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

【js學習筆記十三】前端中的this指向問題

2023-05-16 10:45 作者:前端程序猿歌謠  | 我要投稿

?

目錄


前言

導語

情況1 默認this指向

情況2 箭頭函數方式

注意

情況3 bind綁定

注意

情況4 new綁定 ?

注意

apply用法

call用法

注意

注意

情況5 對象.

注意

注意

情況6 直接調用


前言

我是歌謠 我有個兄弟 巔峰的時候排名c站總榜19 叫前端小歌謠 曾經我花了三年的時間創(chuàng)作了他 現在我要用五年的時間超越他 今天又是接近兄弟的一天人生難免坎坷 大不了從頭再來 歌謠的意志是永恒的 放棄很容易 但是堅持一定很酷

導語

大家好 我是歌謠 對于平時中的一些問題還是有必要自己總結 有時候自己不總結很難了解全部

編輯


情況1 默認this指向

console.log(this,"geyao") //window

直接在瀏覽器中 直接打印 找出this的指向是指向window

情況2 箭頭函數方式

?//箭頭函數 ? geyao=()=>{ ? ? console.log(this,"geyao")//window ? } ? geyao();

箭頭函數的指向指向外層的this

注意

//箭頭函數 ? geyao=()=>{ ? ? console.log(this,"geyao")//window ? } ?// ?geyao(); ? //箭頭函數不能作為構造函數 ? new geyao()

箭頭函數不能作為構造函數 報錯 Uncaught TypeError: geyao is not a constructor

情況3 bind綁定

//bind綁定 ?function geyao() { ? ?console.log(this)//geyao ?} ?geyao.bind("geyao").bind("fangfang")()

bind綁定以第一次綁定為準

注意

// 箭頭函數 ? geyao=()=>{ ? ? console.log(this,"geyao")//window ? } ? geyao.bind("geyao").bind("fangfang")()

箭頭函數中的this不會被修改

情況4 new綁定 ?

function geyao() { ? ?console.log(this,"geyao") //geyao{} ?} ?new geyao()

new 對象的this指向當前的geyao對象

注意

?//new優(yōu)先級大于bind ?function geyao() { ? ?console.log(this,"geyao") //geyao{} ?} ?fangfang= geyao.bind("fangfang") ?new fangfang();

new 的優(yōu)先級大于bind

apply用法

?//apply用法 ?function geyao(a,b){ ?return a+b; ? }function fangfang(a,b){ ?return a-b; ? }console.log(geyao.apply(fangfang,[4,2]));  //fangfang調用geyao的方法 6console.log(fangfang.apply(geyao,[4,2])); //geyao 調用fangfang的方法 2

call用法

?function geyao(a,b){ ?return a+b; ? }function fangfang(a,b){ ?return a-b; ? }//call用法var a1 = geyao.call(sub,4,2);//6

區(qū)別在于通過 apply 調用時實參是放到數組中的,而通過 call 調用時實參是逗號分隔的

注意

//箭頭函數的指向不會被apply改變geyao=()=>{ ? ? console.log(this,"geyao")//window ? } ? geyao.apply("fangfang")

箭頭函數的指向不會被apply影響

注意

function geyao(){ ? ? console.log(this,"geyao")//fangfang ? } ?fangfang= geyao.bind("fangfang") ?fangfang.apply("geyao")

bind中this不會被改變

情況5 對象.

function geyao() { ?console.log(this.fangfang) //fangfang} obj = { fangfang: "fangfang" } obj.geyao = geyao obj.geyao()

注意

geyao=()=>{ ?console.log(this.fangfang) //window undefined} obj = { fangfang: "fangfang" } obj.geyao = geyao obj.geyao()

箭頭函數的優(yōu)先級更高

注意

function geyao() { ?console.log(this) //fangfang} obj = { fangfang: "fangfang" } obj.geyao = geyao.bind("geyao") obj.geyao()

bind的優(yōu)先級比對象.高

情況6 直接調用

function geyao() { ?console.log(this) //windows}geyao()

全局調用直接指向windows


【js學習筆記十三】前端中的this指向問題的評論 (共 條)

分享到微博請遵守國家法律
泰顺县| 五华县| 潢川县| 溧水县| 旌德县| 西吉县| 巨野县| 海晏县| 张家口市| 唐海县| 泰顺县| 武清区| 九江市| 淮阳县| 内江市| 潮安县| 浪卡子县| 沧源| 囊谦县| 昌吉市| 余庆县| 曲靖市| 兴宁市| 子长县| 汨罗市| 泰宁县| 安岳县| 连江县| 谢通门县| 平远县| 万荣县| 泸西县| 云梦县| 九台市| 罗定市| 蒲江县| 阿城市| 富民县| 江安县| 南涧| 普兰县|