Javascript 普通函數(shù)和構(gòu)造函數(shù)的區(qū)別
普通函數(shù)和構(gòu)造函數(shù)的區(qū)別
在命名規(guī)則上,構(gòu)造函數(shù)一般是首字母大寫(xiě),普通函數(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ì)象(如果沒(méi)有對(duì)象調(diào)用,默認(rèn)是window)
4. 返回值由return語(yǔ)句決定
構(gòu)造函數(shù)的返回值:
有一個(gè)默認(rèn)的返回值,新創(chuàng)建的對(duì)象(實(shí)例);
當(dāng)手動(dòng)添加返回值后(return語(yǔ)句):
1. 返回值是基本數(shù)據(jù)類型-->真正的返回值還是那個(gè)新創(chuàng)建的對(duì)象(實(shí)例)
2. 返回值是復(fù)雜數(shù)據(jù)類型(對(duì)象)-->真正的返回值是這個(gè)對(duì)象
看一個(gè)常見(jiàn)的面試題
<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>
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- 深入理解JavaScript中的箭頭函數(shù)
- JavaScript中的普通函數(shù)和箭頭函數(shù)的區(qū)別和用法詳解
- Javascript中 帶名 匿名 箭頭函數(shù)的重要區(qū)別(推薦)
- 深入理解Javascript箭頭函數(shù)中的this
- javascript ES6中箭頭函數(shù)注意細(xì)節(jié)小結(jié)
- JavaScript箭頭函數(shù)中的this詳解
- 詳解Javascript ES6中的箭頭函數(shù)(Arrow Functions)
- JavaScript中的普通函數(shù)與構(gòu)造函數(shù)比較
- JavaScript中箭頭函數(shù)與普通函數(shù)的區(qū)別詳解
相關(guān)文章
javascript中interval與setTimeOut的區(qū)別示例介紹
這篇文章主要介紹了javascript中interval與setTimeOut的區(qū)別,需要的朋友可以參考下2014-03-03
小議JavaScript中Generator和Iterator的使用
這篇文章主要介紹了小議JavaScript中Generator和Iterator的使用,文中舉了一個(gè)簡(jiǎn)單的示例來(lái)說(shuō)明二者之間的配合,需要的朋友可以參考下2015-07-07
Javascript學(xué)習(xí)筆記2 函數(shù)
在Javascript中,function才是Javascript的第一型。當(dāng)我們寫(xiě)下一段函數(shù)時(shí),其實(shí)不過(guò)是建立了一個(gè)function類型的實(shí)體。2010-01-01
javascript學(xué)習(xí)筆記(十二) RegExp類型介紹
javascript學(xué)習(xí)筆記之RegExp類型介紹,學(xué)習(xí)js的朋友可以參考下2012-06-06
JavaScript入門教程(9) Document文檔對(duì)象
Document文檔對(duì)象是JavaScript中window和frames對(duì)象的一個(gè)屬性,是顯示于窗口或框架內(nèi)的一個(gè)文檔。2009-01-01
javascript學(xué)習(xí)筆記(三)BOM和DOM詳解
本文應(yīng)用了很多實(shí)例,來(lái)解讀JavaScript中BOM和DOM,DOM是一個(gè)使程序和腳本有能力動(dòng)態(tài)地訪問(wèn)和更新文檔的內(nèi)容、結(jié)構(gòu)以及樣式的平臺(tái)和語(yǔ)言中立的接口。,而B(niǎo)OM定義了JavaScript可以進(jìn)行操作的瀏覽器的各個(gè)功能部件的接口。2014-09-09

