国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

javascript - 關于this的一個疑問

瀏覽:131日期:2023-02-14 08:30:41

問題描述

javascript - 關于this的一個疑問

如圖所示,請問各位大佬,為什么foo.call()第一個參數是window?

問題解答

回答1:

其實問題關鍵是對于call/apply函數的作用不理解。用官方的話來說是,改變作用域上下文,只是這里為將局部的上下文改變為window。其實call/apply是一種'借刀殺人'的方法,就是自己沒有某個屬性或方法,然后想調用其他對象的屬性或方法,也是對象繼承的一種實現方式。

回答2:

其實不是必須是windouws 也沒比用用call 只需要在f里面聲明 var that=this 把閉包的函數的this寫成that就好了,這是因為閉包的函數 不能直接得到上層函數的環境變量 只能得到windous 所以聲明就ok 了 不懂的可以問我

回答3:

如果是前端,函數有一個隱形的參數this,默認的就是指向window這個全局變量。除非你改變this指向的對象 比如foo.call(其他對象)原句是用了默認的this參數注解是明確聲明了this指向的就是window

我再寫幾句,否則說去清楚

var foo = function () { console.log(this.x);}foo();為什么this指向window呢

另外this的語義是 指向調用本函數的對象。每個函數都需要一個對象來調用obj.f()表示f被obj的調用而前端如果沒有指定調用對象,默認的都是全局變量window來調用函數

回答4:

javascript在設計的時候就會將內部函數(即函數體中的函數)中的this綁定到全局對象(即window)上,我覺得這里注釋寫著foo.call(window)應該只是用js語言來解釋了一下為什么foo()中的this.x會輸出10。

回答5:

沒有說foo.call的第一個參數必須是window,題主要理解的是什么是call。

https://developer.mozilla.org...

回答6:

可以了解下call,apply,bind的作用與區別

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 精品中文字幕一区在线 | 日韩大片高清播放器大全 | 亚洲天天看 | 欧美一级在线播放 | 久久精品视频8 | 亚洲午夜精品一级在线播放放 | 国产又色又爽黄的网站免费 | 欧美另类视频在线 | 国产 日韩 欧美 在线 | 国产视频一区二区三区四区 | 成人欧美一区二区三区黑人免费 | a级毛片免费观看在线播放 a级毛片免费看 | 亚洲欧美日韩国产专区一区 | 久久99精品久久久久久综合 | 国产乱肥老妇精品视频 | 美女黄页黄频 | 亚洲欧美久久精品 | 中国国产一国产一级毛片视频 | 亚洲国产成人久久综合碰 | 亚洲第一网站在线观看 | 成年人免费网站视频 | 在线观看视频国产 | 午夜免费69性视频爽爽爽 | 久久有这有精品在线观看 | 91香蕉视 | 午夜在线影院 | 久久精品国产亚洲欧美 | 欧美在线香蕉在线现视频 | 九九精品久久久久久噜噜 | 午夜宅男在线永远免费观看网 | 成人黄色免费网址 | 亚洲性网站 | 中文一区 | 在线视频一区二区三区在线播放 | 岛国片欧美一级毛片 | 精品国产品欧美日产在线 | 波多野结衣一区二区三区88 | 亚洲欧美日韩另类精品一区二区三区 | 最新国产成人综合在线观看 | 久久精品国产在爱久久 | 欧美做暖小视频xo免费 |