這道題考了原型鏈、作用域、變數提公升,函式宣告與函式表示式、this指向等
function
foo();
return
this;}
foo.
getname
=function()
;foo.prototype.
getname
=function()
;getname
=function()
;function
getname()
foo.
getname()
;getname()
;foo()
.getname()
;getname()
; foo.
getname()
;new
foo().
getname()
;
答案:2,4,1,1,2,3
解答:
foo.
getname()
;// 2 函式本身就有乙個屬性getname,雖然原型鏈上也有,但除非沒有屬性 才去取原型鏈上的
getname()
;// 4,由於函式宣告被提前了,表示式在後,宣告被覆蓋了,所以輸出了4
/** * foo()函式返回this,外部this指向window,由於內部的getname變數,沒有宣告let或者var,
* 會暴露為乙個全域性物件,所以返回了1
*/foo()
.getname()
;// 1
getname()
;//1 前面的函式執行,暴露了乙個全域性物件,所以為1
foo.
getname()
;//2 直接獲取 foo的屬性getname()
newfoo()
.getname()
;//3 new foo() 構造了乙個例項物件,並繼承了它原型鏈上的物件方法
一道考察陣列知識的程式設計題
今天先貼 下次補上整體思路與後續優化 題目 假設有乙個集合 foo bar hello world 求這個集合裡單詞組合起來的所有不同的結果。1 let arr foo bar hello world 2 str 3 newarr 4 results 56 for let i 0 i 99 i jo...
一道題 測試你對多型的了解?
題目 根據題目,寫出自己的答案 多型練習 author public class moremodule class a public string show a obj class b extends a public string show a obj class c extends b clas...
switch語句(有一道你錯過的題)
switch語句也是一種分支語句。常常用於多分支的情況。比如輸入1,輸出星期一 輸入2,輸出星期二 輸入3,輸出星期三 輸入4,輸出星期四 輸入5,輸出星期五 輸入6,輸出星期六 輸入7,輸出星期日 那我沒寫成 if else if else if 的形式太複雜,那我們就得有不一樣的語法形式。這就是...