国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS匿名函數(shù)內(nèi)部this指向問題詳析

2024-05-06 15:39:38
字體:
供稿:網(wǎng)友

前言

網(wǎng)上看到一句話,匿名函數(shù)的執(zhí)行是具有全局性的,那怎么具有的全局性呢?

this的指向在函數(shù)定義的時候是確定不了的,只有函數(shù)執(zhí)行的時候才能確定this到底指向誰,實際上this的最終指向的是那個調(diào)用它的對象

1.案例中,第一個say打出來的是Alan,而第二個則是window

 var name = 'window' var person = { name :'Alan', sayOne:function () {  console.log(this.name) }, sayTwo:function () {  return function () {  console.log(this.name)  } } } person.sayOne()//Alan person.sayTwo()() // window 

2.原因

    函數(shù)內(nèi)部的this指向調(diào)用者 sayOne調(diào)用者是person對象,所以this指向person; sayTwo的調(diào)用者雖然也是person對象,但是區(qū)別在于這次調(diào)用并沒有打出this而是在全局返回了一個匿名函數(shù) 而這個匿名函數(shù)不是作為某個對象的方法來調(diào)用執(zhí)行,是在全局執(zhí)行

3.我們也可以更改this指向,這里應(yīng)用JS高級編程的案例

var name = "global";var foo = { name: "foo", getName : function(){ console.log(this.name); }}var bar = { name: "bar", getName : function(){ return (function(){  console.log(this.name); })(); }}foo.getName(); //foofoo.getName.call(bar); //barfoo.getName.call(this); //globalfoo.getName.call(window); //global(function(){ console.log(this.name)}.bind(bar))(); //bar(function(){ console.log(this.name)}.bind())(); //global

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對錯新站長站的支持。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 芦溪县| 新乡县| 榆中县| 和静县| 杭州市| 枣阳市| 杭锦旗| 普格县| 开封市| 荔波县| 景谷| 宣武区| 普兰店市| 商水县| 璧山县| 沅江市| 庐江县| 朝阳县| 苗栗县| 琼海市| 吉林市| 定结县| 会昌县| 潞西市| 桂东县| 罗田县| 凉城县| 东丽区| 莱州市| 洞口县| 衡阳县| 巨野县| 沾化县| 民权县| 扎兰屯市| 岑巩县| 新巴尔虎左旗| 富锦市| 鸡泽县| 昆山市| 原阳县|