JavaScript 建構函式
函式是JavaScript中使用最為頻繁的語法結構。
首先看幾段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function func(){ console.log("螞蟻部落"); } func();
宣告一個具名函式,並呼叫它,列印出字串“螞蟻部落”。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let func=function(){ console.log("螞蟻部落"); } func();
宣告一個匿名函式,並將其賦值給變數func,然後呼叫此函式。
最終列印出字串"螞蟻部落"。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let func = ()=>{ console.log("螞蟻部落"); } func();
宣告一個箭頭函式,並呼叫他它,列印出字串“螞蟻部落”。
關於箭頭函式可以參閱JavaScript 箭頭函式一章節。
特別說明:箭頭函式並不能用作建構函式。
一.普通函式與建構函式:
建構函式與普通函式身份的切換,在於函式的使用方式。
如果函式使用new呼叫,那麼它被用作建構函式,否則被用作普通函式。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function func(){ this.webName="螞蟻部落"; this.address="青島市南區"; this.show=function(){ console.log(this.webName); } } let ant=new func(); ant.show();
程式碼執行效果截圖如下:
程式碼分析如下:
(1).使用new呼叫函式,此函式就被稱作為建構函式。
(2).建構函式會建立一個物件。
(3).this指向建構函式建立的物件,並且繼承了建構函式原型所指向的物件。
更多細節可以參閱如下兩篇文章:
(1).new可以參閱JavaScript new 運算子一章節。
(2).原型可以參閱JavaScript prototype一章節。
二.建構函式中的return語句:
(1).沒有return語句:
這是建構函式的普遍應用方式,建構函式的返回值就是物件例項。
在上面已經演示過了,下面再來看一個帶有原型的。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function func(webName,address){ this.webName=webName; this.address=address; this.show=function(){ console.log(this.webName); } } func.prototype.url="http://www.softwhy.com"; let oneAnt=new func("螞蟻部落","青島市南區"); let twoAnt=new func("百度","北京"); oneAnt.show(); twoAnt.show();
程式碼執行效果截圖如下:
(2).具有return語句:
具有return語句的建構函式較為複雜一些。
如果建構函式中的return返回值不是物件,那和沒有return語句完全一樣。
[JavaScript] 純文字檢視 複製程式碼執行程式碼function func(){ this.webName="螞蟻部落"; this.address="青島市南區"; this.show=function(){ console.log(this.webName); } return 2; } let ant=new func(); ant.show();
程式碼執行效果截圖如下:
建構函式return語句返回值是2,但是和沒有return語句一樣,建構函式的返回值依然是物件例項。
如果return語句的返回值是一個物件,那麼建構函式的返回值就是此物件。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function Antzone(){ this.webName="螞蟻部落"; return { age:6, url:"www.softwhy.com" } } let ant=new Antzone(); console.log(ant.constructor===Antzone); console.log(ant.url);
程式碼執行效果截圖如下:
有截圖可見,如果return的返回值是一個物件,那麼建構函式的返回值就是此物件。
相關文章
- JavaScript Date()建構函式JavaScript函式
- 回顧Javascript建構函式JavaScript函式
- 【譯】JavaScript 工廠函式 vs 建構函式JavaScript函式
- 預設建構函式、引數化建構函式、複製建構函式、解構函式函式
- 建構函式與解構函式函式
- ## 建構函式函式
- [JavaScript]原型、原型鏈、建構函式與繼承JavaScript原型函式繼承
- JavaScript建構函式,物件導向程式設計JavaScript函式物件程式設計
- C++ 建構函式和解構函式C++函式
- 類的建構函式和解構函式函式
- 你不知道的JavaScript--Item8 函式,方法,建構函式呼叫JavaScript函式
- JavaScript物件導向之二(建構函式繼承)JavaScript物件函式繼承
- 詳解 JavaScript 建構函式和 "new" 操作符JavaScript函式
- PHP筆記:建構函式與解構函式PHP筆記函式
- JavaScript教程全套影片合集:建構函式內容講解JavaScript函式
- 【C++】初始化列表建構函式VS普通建構函式C++函式
- C++中建構函式,拷貝建構函式和賦值函式的詳解C++函式賦值
- 11-建構函式函式
- 初識建構函式函式
- 建構函式建立物件函式物件
- 建構函式詳解函式
- 建構函式和類函式
- 關於建構函式與解構函式的分享函式
- C++入門記-建構函式和解構函式C++函式
- 《JavaScript物件導向精要》之四:建構函式和原型物件JavaScript物件函式原型
- Javascript繼承2:建立即繼承—-建構函式繼承JavaScript繼承函式
- 前端面試之理解原型/建構函式/例項(JavaScript篇)前端面試原型函式JavaScript
- javascript系列--認識並理解建構函式,原型和原型鏈JavaScript函式原型
- 建構函式與普通函式的區別函式
- constructor 未指向建構函式Struct函式
- JS 建構函式與類JS函式
- Dart建構函式介紹Dart函式
- Java建構函式詳解Java函式
- Java泛型建構函式Java泛型函式
- javascript中初始化建構函式時new所起的作用JavaScript函式
- JavaScript 函式引數解構物件JavaScript函式物件
- 前端筆記之JavaScript物件導向(一)Object&函式上下文&建構函式&原型鏈前端筆記JavaScript物件Object函式原型
- 預設建構函式和帶預設值的建構函式不能同時存在函式