在命名規(guī)則上,構(gòu)造函數(shù)一般是首字母大寫,普通函數(shù)遵照小駝峰式命名法。
在函數(shù)調(diào)用的時(shí)候:
function fn() { }
構(gòu)造函數(shù):1. new fn( )
2 .構(gòu)造函數(shù)內(nèi)部會(huì)創(chuàng)建一個(gè)新的對(duì)象,即f的實(shí)例
3. 函數(shù)內(nèi)部的this指向 新創(chuàng)建的f的實(shí)例
4. 默認(rèn)的返回值是f的實(shí)例
普通函數(shù):1. fn( )
2. 在調(diào)用函數(shù)的內(nèi)部不會(huì)創(chuàng)建新的對(duì)象
3. 函數(shù)內(nèi)部的this指向調(diào)用函數(shù)的對(duì)象(如果沒有對(duì)象調(diào)用,默認(rèn)是window)
4. 返回值由return語句決定
構(gòu)造函數(shù)的返回值:
有一個(gè)默認(rèn)的返回值,新創(chuàng)建的對(duì)象(實(shí)例);
當(dāng)手動(dòng)添加返回值后(return語句):
1. 返回值是基本數(shù)據(jù)類型-->真正的返回值還是那個(gè)新創(chuàng)建的對(duì)象(實(shí)例)
2. 返回值是復(fù)雜數(shù)據(jù)類型(對(duì)象)-->真正的返回值是這個(gè)對(duì)象
看一個(gè)常見的面試題
<script> function foo() { var f2 = new foo2(); console.log(f2); //{a: 3} console.log(this); //window return true; } function foo2() { console.log(this); //foo2類型的對(duì)象 不是foo2函數(shù) // this.age = 30; return {a: 3}; } var f1 = foo(); console.log(f1); // true </script>
Copyright ? 2019- 91gzw.com 版權(quán)所有 湘ICP備2023023988號(hào)-2
違法及侵權(quán)請(qǐng)聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市萬商天勤律師事務(wù)所王興未律師提供法律服務(wù)