默認(rèn)綁定:全局環(huán)境中铃岔,this 默認(rèn)綁定到 window。
隱式綁定:一般地门岔,被直接對象所包含的函數(shù)調(diào)用時爱致,也稱為方法調(diào)用,this 隱式綁定到該直接對象固歪。
隱式丟失:隱式丟失是指被隱式綁定的函數(shù)丟失綁定對象蒜鸡,從而默認(rèn)綁定到 window。
顯式綁定:通過 call()牢裳、apply()逢防、bind()方法把對象綁定到 this 上,叫做顯式綁定蒲讯。
new 綁定:如果函數(shù)或者方法調(diào)用之前帶有關(guān)鍵字 new忘朝,它就構(gòu)成構(gòu)造函數(shù)調(diào)用。對于 this 綁定來說判帮,稱為 new 綁定局嘁。
【1】構(gòu)造函數(shù)通常不使用 return 關(guān)鍵字,它們通常初始化新對象晦墙,當(dāng)構(gòu)造函數(shù)的函數(shù)體執(zhí)行完畢時悦昵,它會顯式返回。在這種情況下晌畅,構(gòu)造函數(shù)調(diào)用表達式的計算結(jié)果就是這個新對象的值但指。
【2】如果構(gòu)造函數(shù)使用 return 語句但沒有指定返回值,或者返回一個原始值,那么這時將忽略返回值棋凳,同時使用這個新對象作為調(diào)用結(jié)果拦坠。
【3】如果構(gòu)造函數(shù)顯式地使用 return 語句返回一個對象,那么調(diào)用表達式的值就是這個對象剩岳。