首頁 >web前端 >js教程 >原生 js 建構函數

原生 js 建構函數

不言
不言原創
2018-04-10 14:36:161424瀏覽

這篇文章給大家分享的內容是關於原生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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn