prototype
這個(gè)屬性。這也驗(yàn)證了開(kāi)發(fā)人員是否有能力擴(kuò)展原生數(shù)據(jù)類型函數(shù)(雖然不應(yīng)該這么做)。在這里,另一種重點(diǎn)是,展示你意識(shí)到如何在不重寫(xiě)可能已經(jīng)定義的函數(shù)。這個(gè)需要在自定義函數(shù)之前判斷函數(shù)不存在。
`String.prototype.repeatify = String.prototype.repeatify || function(times) {/* code here */};``
當(dāng)你被要求一個(gè)墊片javascript函數(shù)時(shí),這個(gè)技巧十分有用。
問(wèn)題3: 提升變量(Hoisting)
執(zhí)行以下代碼會(huì)有什么結(jié)果?為什么會(huì)這樣?
function test() { console.log(a); console.log(foo()); var a = 1; function foo() { return 2; }}test();
答案
這段代碼的執(zhí)行結(jié)果是 undefined
和 2
。
這個(gè)結(jié)果的原因是,變量和函數(shù)都被提升了( hoisted )。因此,那個(gè)時(shí)候