前言
Js是當今時代最常用的代碼操作語言,其中new操作符尤為常見。對于很多代碼小白來說,并不清楚new在Js中扮演著怎樣的角色,具體是做什么用,干了什么。本文從new操作符的作用著手,簡單介紹new操作符相關知識。
什么是new?
眾所周知,在JS中,new的作用是通過構造函數來創建一個實例對象。
像下面這樣:(和普通函數不一樣,當函數用作構造函數時,首字母一般要大寫,以作區分。)
1
2
3
4
5
|
function Foo(name) { this .name = name; } console.log( "new Foo('mm')的類型:" , typeof new Foo( 'mm' )); // object console.log( "Foo的類型:" , typeof Foo); // function |
創建了一個空對象
1
|
var obj= new Object(); |
在Js代碼中,new操作符的主要作用是產生對象。通過new創建空對象,為創建對象打基底。
設置原型鏈
1
|
obj.__proto__= Func.prototype; |
JS中在利用new操作符建好基底后,就開始下一步的Js代碼操作,設置原型鏈。new通過構造函數創建出的實例可以訪問到構造函數原型鏈中的屬性,換言之,通過new操作符,原型鏈鏈接了實例和構建函數。
(改變this指向)讓Func中的this指向obj,并執行Func的函數體。
1
|
var result =Func.call(obj); |
一般情況下,在Js代碼組中,出現this時,構造函數內部是正常工作,但當通過new操作符改變this指向后,所出現的返回值會被正常的返回出去。
判斷Func的返回值類型:如果是值類型,返回obj。如果是引用類型,就返回這個引用類型的對象。
1
2
3
4
5
6
|
if ( typeof (result) == "object" ){ func=result; } else { func=obj; } |
從上述一組new操作符代碼中可看出,new還可用來判斷Func的返回值類型。如果返回值是值類型,則正常返回。如果是引用類型,就返回到引用類型的對象。
以上四點是new操作符在Js代碼中的主要作用,對于Js代碼小白希望可以有幫助。
總結
到此這篇關于關于Js中new操作符作用的文章就介紹到這了,更多相關Js new操作符作用內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://segmentfault.com/a/1190000039243716