Foo和getName的那些事兒

2021-10-08 08:21:07 字數 2208 閱讀 8327

參考部落格

題目:

// 方式1:建立了乙個有返回值的建構函式,在裡面定義了全部變數getname指向乙個匿名函式(小心閉包)

function

foo(

)return

this;}

// 方式2:建構函式的乙個屬性getname指向乙個匿名函式

foo.

getname

=function()

// 方式3:建構函式的原型上有個getname方法

foo.prototype.

getname

=function()

// 方式4:定義乙個變數getname指向乙個匿名函式

vargetname

=function()

// 方式5:宣告乙個叫getname的具名函式

function

getname()

// 輸出結果

foo.

getname()

;getname()

;foo()

.getname()

;getname()

;new

foo.getname()

;new

foo().

getname()

;new

newfoo()

.getname()

;// 2 4 1 1 2 "google" "google"

第1問- - foo.getname()

即執行方式2,故得結果2

第2問- - getname()

直接呼叫getname函式,關乎方式4和5

由於函式宣告提公升,在預編譯時方式5會提公升到上面去,程式一步步執行下來,方式4會覆蓋方式5,故得結果4

第3問- - foo().getname()

先執行foo函式,然後呼叫foo函式的返回值物件的getname方法

foo函式中定義了全域性變數getname指向乙個匿名函式,即改變了window上的getname值;foo()返回的this指向window物件

即window.getname(),故得結果1

第4問- - getname()

直接呼叫getname函式,即window.getname(),亦得結果1

第5問- - new foo.getname()

根據js運算子優先順序:new(foo.getname)()

將foo.getname作為建構函式,然後執行它,故得結果2

第6問- - new foo().getname()

根據js運算子優先順序:(new foo()).getname()

知識點1:傳統意義上,建構函式是沒有返回值的,執行後結果為建立出來的例項物件

js中建構函式既可以有返回值也可無返回值

1. 無返回值時,執行後結果為例項物件

2. 有返回值時,若返回值是基本型別,則相當無返回值,執行結果為例項物件

若返回值是引用型別,執行結果為該引用資料

本問中foo函式執行後返回this,而this在建構函式中指向例項物件,層層往上找getname方法

屬性訪問優先順序:物件自身 > 建構函式 > 原型 > 父級,故執行方式3

知識點2:邏輯運算子運算- - 對於"&&「來說,如果前者為真,那麼就執行後者,否則只執行前者;

對於」||「來說,如果前者為真,只執行前者,後者不必執行,否則還得執行後者。因此結果為"google」。

第7問- - new new foo().getname()

根據js運算子優先順序:new((new foo()).getname)()

先執行new foo(),再得到new foo().getname作為建構函式,然後執行它,得到結果"google"

foo 和 foo 之間的區別

二.解題方法 三.真題 php支援乙個錯誤控制符 當將其放置在乙個php表示式之前,該表示式可能產生的任何錯誤資訊都被忽略掉。1 php運算子優先順序 從高到低 2 比較運算子 和 的區別 注 3 遞增 遞減運算子 遞減null值沒有效果 遞增null值為1 遞增和遞減在前,就先運算,後返回 反之就...

axios 和 cookie 的那些事

後端寫好,前端寫好,postman測試做好,一切都沒有問題,但是 實際用axios來實現登陸功能的時候問題就來了.什麼情況?登陸根本用不了啊!每次都提示我沒有登陸!乙個登入的場景,用axios傳送post請求去登入,能成功返回資料,但是用作許可權驗證的cookie就是沒有儲存,經查閱,axios 預...

sychronize和Lock的那些事

sychronize和lock 一 synchronized的三種應用方式 1.修飾例項方法,作用於當前例項加鎖,進入同步 前要獲得當前例項的鎖。鎖的是當前物件 2.修飾靜態方法,作用於當前類物件加鎖,進入同步 前要獲得當前類物件的鎖。鎖的是當前class物件 3.修飾 塊,指定加鎖物件,對給定物件...