這篇文章給大家分享的內容是關於原生js 建構函數,有著一定的參考價值,有需要的朋友可以參考一下
javascript 是一種基於物件的語言,它包含5中原生資料類型:
number(數值類型)
#boolean(布林值類型)
string(字串型別)
null(空)
#undefined(未定義)
#除此之外,其他的都是對象,函數也是一個對象;
function fn(){ //这是一个函数声明,函数是一个特殊的对象}
#建構子定義
建構子是一個普通的函數,與其他函數沒有任何區別,可以理解為函數==建構函數,它只是概念上的定義,使用它用來實例化物件。
對於JavaScript的內建對象,Object、Array、Date等等這些都是建構子。
function Fn(){}var f = new Fn() //实例化对象
使用new運算子返回的物件不一定是實例本身,也可以在建構函式用使用return改變回傳值:
function Obj() { this.a = 1; return { a: 2 }; }var o = new Obj(); // o并不是Obj的实例console.log(o.a); // 输出2
前面說到了函數也是一個對象,在JavaScript的內建物件中,所有的函式物件都是Function建構子的實例,例如:Object、Array等等,
使用instanceof 這個運算子就可以校驗
instanceof運算子傳回一個指定的物件是否一個類別的實例,格式如:A instanceof B。其中,左操作數必須是一個對象,右操作數必須是一個類別(構造函數);
#判斷過程:如果函數B在對象A的原型鏈中被發現,那麼instanceof操作符將會傳回true,否則傳回false。
alert(Function instanceof Function); // Function函数对象 本身就是自己的一个实例alert(Object instanceof Function); // Object函数对象 是 Function构造函数的一个实例alert(arr instanceof Array);
javascript 是一種基於物件的語言,它包含5中原生資料型態:
number(數值類型)
boolean(布林值類型)
#string(字串型別)
null(空)
undefined(未定義)
#除此之外,其他的都是對象,函數也是一個物件;
function fn(){ //这是一个函数声明,函数是一个特殊的对象}
建構子定義
建構子是一個普通的函數,與其他函數沒有任何區別,可以理解為函數==建構函數,它只是概念上的一個定義,使用它用來實例化物件。
對於JavaScript的內建對象,Object、Array、Date等等這些都是建構子。
function Fn(){}var f = new Fn() //实例化对象
使用new運算子返回的物件不一定是實例本身,也可以在建構函式用使用return改變回傳值:
function Obj() { this.a = 1; return { a: 2 }; }var o = new Obj(); // o并不是Obj的实例console.log(o.a); // 输出2
前面說到了函數也是一個對象,在JavaScript的內建物件中,所有的函式物件都是Function建構子的實例,例如:Object、Array等等,
使用instanceof 這個運算子就可以校驗
instanceof運算子傳回一個指定的物件是否一個類別的實例,格式如:A instanceof B。其中,左操作數必須是一個對象,右操作數必須是一個類別(構造函數);
#判斷過程:如果函數B在對象A的原型鏈中被發現,那麼instanceof操作符將會傳回true,否則傳回false。
alert(Function instanceof Function); // Function函数对象 本身就是自己的一个实例alert(Object instanceof Function); // Object函数对象 是 Function构造函数的一个实例alert(arr instanceof Array);
相關推薦:
js建構子、索引陣列和屬性的實作方式和使用_javascript技巧
以上是原生 js 建構函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!