第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

js 語法問題

js 語法問題

回首憶惘然 2018-08-11 10:09:27
(inner.func)() 這段代碼。 第一個(gè)括號(hào)里應(yīng)該是會(huì)返回一個(gè)函數(shù)的吧,如果看成下面這樣(inner.func)() 等價(jià)于這樣的話 那么這個(gè)函數(shù)的this就是window了,那么this.out就是10,顯然是不對(duì)的我覺得可能可以看成是這樣的(inner.func)() 等價(jià)于所以是怎么去理解這個(gè)括號(hào)運(yùn)算符呢?你們?cè)趺纯??。。。。。。。。。。。額。。這里補(bǔ)充一下。。??赡芪覜]說清楚,你們說的什么this的指向。。這些我都懂其實(shí)我是想問問js的括號(hào)運(yùn)算符,看看你們?cè)趺蠢斫饩褪?inner.func)() 這樣一個(gè)表達(dá)式 (inner.func) 給 inner.func 加上這么一個(gè)括號(hào)能讓其發(fā)生什么變化嗎? 看起來是并沒有變化。 因?yàn)槲铱吹狡渌胤接腥苏f()這個(gè)運(yùn)算符會(huì)去取其中函數(shù)的引用。所以上面的兩段代碼(function () {    var out = 30;    return this.out; })()這一段,意味著取得只是func的引用,這顯然是不符合真實(shí)的運(yùn)行結(jié)果的。而我自己模擬出來的一段代碼var newFunc = func.bind(inner)  // 前一個(gè)括號(hào)返回了這個(gè)newFunc()                       // 第一個(gè)括號(hào)運(yùn)行可以比較好的符合(inner.func) 的實(shí)際效果
查看完整描述

1 回答

?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊

這個(gè)問題不錯(cuò),為方便看清,我把你的例子稍作了修改:

var out = 10;var inner = {    out: 20,    func: function () {        var out = 30;        console.log(this); // 看清 this 的本質(zhì)
        return this.out;
    }
}console.log( (inner.func)() ) // 20console.log( (function() {    var out = 30;    console.log(this); // 看清 this 的本質(zhì)
    return this.out;
})() ) // 10

https://img1.sycdn.imooc.com//5ba5e2160001c6fc06320068.jpg

不是 () 在決定 context,是 {} (非 function(){})在決定。{} 就是定義對(duì)象,() 的作用是取對(duì)象,跟 (1 + 2) * 3 的括號(hào)基本一個(gè)意思;function(){}() 是語法錯(cuò)誤的,至于為啥沒定義這么個(gè)語法,我也不知道,你知道了告訴我下。




查看完整回答
反對(duì) 回復(fù) 2018-09-22
  • 1 回答
  • 0 關(guān)注
  • 907 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)