題目:以下代碼執(zhí)行后輸出的值分別是?varo={x:10,foo:function(){with(this){functionbar(){alert(x);alert(this.x);}varx=20;(function(){bar();})();bar.call(this);}}}o.foo();我不明白的:第二行x:10和直接寫x=10有什么區(qū)別嗎?第四行with(this),作用應(yīng)該是延長(zhǎng)作用域鏈?那在本題中具體是什么情況?在varx=20后,再次調(diào)用bar()為什么第一個(gè)是undefined,第二個(gè)是20?感覺(jué)這道題考察的蠻多的,拿出來(lái)和大家討論下。題目測(cè)試結(jié)果:undefined,undefined,undefined,20.
一道稍微綜合綜合點(diǎn)的JS題,關(guān)于with, this, 和call用法?
回首憶惘然
2019-04-21 20:39:51