constructor

constructor

var x = 3;
x.constructor; // function Number () { } , 是一個函數(shù)
typeof (x.constructor); // function
x.constructor == Number; // true

為什么x會有constructor屬性。因為每一個構造函數(shù)原型都會生成constructor屬性,且這個屬性指向構造函數(shù)。而實例對象是繼承了原型的屬性和方法的

用法:判斷給定對象為什么類

function type(x) {
    if (x == null) return ""; //Null 和 undefined 沒有構造函數(shù)
    switch (x.constructor) {
        case Number: return "Number"; //處理原始類型
        case String: return "String"; //處理原始類型
        case Date: return "Date"; //處理內(nèi)置類型
        case Complex: return "Complex"; //處理自定義類型
    }
}
  • 不足
    1.頁面多個框架頁面中,創(chuàng)建的兩個數(shù)組繼承自兩個完全相同卻相互獨立的原型對象,因而其中一個框架頁面中的數(shù)組對象不是另外一個框架頁面中Array()構造函數(shù)的實例。(instanceof也如此)
    2.此外,不是每個實例都有constructor屬性,該屬性是繼承自原型對象,原型對象可能沒有該屬性。或者,實例原型更改后并沒有指向正確的構造函數(shù),導致不正確。
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 普通創(chuàng)建對象和字面量創(chuàng)建對象不足之處:雖然 Object 構造函數(shù)或?qū)ο笞置媪慷伎梢杂脕韯?chuàng)建單個對象,但這些方式有...
    believedream閱讀 2,574評論 2 18
  • 博客內(nèi)容:什么是面向?qū)ο鬄槭裁匆嫦驅(qū)ο竺嫦驅(qū)ο缶幊痰奶匦院驮瓌t理解對象屬性創(chuàng)建對象繼承 什么是面向?qū)ο?面向?qū)ο?..
    _Dot912閱讀 1,534評論 3 12
  • 本章內(nèi)容 理解對象屬性 理解并創(chuàng)建對象 理解繼承 面向?qū)ο笳Z言有一個標志,那就是它們都有類的概念,而通過類可以創(chuàng)建...
    悶油瓶小張閱讀 963評論 0 1
  • 申明,我想你了 ,你想我嗎 ? 你就這樣離開我的世界了,不會再出現(xiàn)了嗎?如果有一天你玩簡書,我希望你可以看到,我...
    申冰冰閱讀 376評論 0 2
  • 早上照例6點半起床。蒸了昨天去母親那兒拿的餃子,味道不錯,想起教了母親跪姿俯身后抬腿的練習,應該對改善她的腿部有幫...
    francoMGe閱讀 276評論 0 0

友情鏈接更多精彩內(nèi)容