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

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - 關(guān)于this的一個疑問

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

問題描述

javascript - 關(guān)于this的一個疑問

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

問題解答

回答1:

其實問題關(guān)鍵是對于call/apply函數(shù)的作用不理解。用官方的話來說是,改變作用域上下文,只是這里為將局部的上下文改變?yōu)閣indow。其實call/apply是一種'借刀殺人'的方法,就是自己沒有某個屬性或方法,然后想調(diào)用其他對象的屬性或方法,也是對象繼承的一種實現(xiàn)方式。

回答2:

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

回答3:

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

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

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

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

回答4:

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

回答5:

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

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

回答6:

可以了解下call,apply,bind的作用與區(qū)別

標簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 国内精品2020情侣视频 | www.久草.com | 午夜国产精品久久久久 | 成人女人a毛片在线看 | 日本在线观看免费视频 | 99视频在线国产 | 亚洲国产视频网 | 国产精品久久久久精 | 久久爽久久爽久久免费观看 | 日韩久久久精品首页 | 国产精品久久国产三级国不卡顿 | 国产精品久久久天天影视香蕉 | 久草在线影 | 久久不雅视频 | 中文字幕在线免费观看 | 国产精品日本 | 亚洲国产精品不卡毛片a在线 | 好吊色综合网天天高清 | 亚洲天堂男人网 | 亚洲精品久久久久中文字幕一区 | www.亚洲综合 | 亚洲天堂美女视频 | 国产精品久久久久久小说 | 久爱www免费人成福利播放 | 国产精品久久国产三级国不卡顿 | 在线成人天天鲁夜啪视频 | 国产呦精品一区二区三区网站 | 上海一级毛片 | 国产在视频线在精品 | 成人 欧美 | 精品成人毛片一区二区视 | 国产一区二区三区久久精品小说 | 日韩成人毛片高清视频免费看 | 久久久久免费观看 | 波多野结衣免费免费视频一区 | 免费看一级毛片欧美 | 亚洲天堂精品在线观看 | 欧美精品另类 | 50岁老女人毛片一级亚洲 | 国产精品成人观看视频国产 | 午夜黄色福利视频 |