constructor

作者: xgszl33614 | 来源:发表于2016-05-03 14:48 被阅读43次

constructor

var x = 3;
x.constructor; // function Number () { } , 是一个函数
typeof (x.constructor); // function
x.constructor == Number; // true

为什么x会有constructor属性。因为每一个构造函数原型都会生成constructor属性,且这个属性指向构造函数。而实例对象是继承了原型的属性和方法的

用法:判断给定对象为什么类

function type(x) {
    if (x == null) return ""; //Null 和 undefined 没有构造函数
    switch (x.constructor) {
        case Number: return "Number"; //处理原始类型
        case String: return "String"; //处理原始类型
        case Date: return "Date"; //处理内置类型
        case Complex: return "Complex"; //处理自定义类型
    }
}
  • 不足
    1.页面多个框架页面中,创建的两个数组继承自两个完全相同却相互独立的原型对象,因而其中一个框架页面中的数组对象不是另外一个框架页面中Array()构造函数的实例。(instanceof也如此)
    2.此外,不是每个实例都有constructor属性,该属性是继承自原型对象,原型对象可能没有该属性。或者,实例原型更改后并没有指向正确的构造函数,导致不正确。

相关文章

  • constructor()

    constructor里的this.state和直接写this.state区别?答案:没有区别 在React中co...

  • constructor

    constructor 为什么x会有constructor属性。因为每一个构造函数原型都会生成constructo...

  • constructor

    constructor 翻译:构造者、构造器语法:object.constructor 输出:function e...

  • constructor

    所有的函数都有一个prototype属性,它是一个对象。 prototype有一个constructor的属性,默...

  • Constructor

    this:继承同一类中的其它构造函数 Class Car{private string _description;...

  • constructor()

    constructor()是类的默认方法,通过new命令生成对象实例时,自动调用该方法。一个类必须有constru...

  • Haskell类构造器和值构造器的区别

    IO is a type constructor, not a value constructor. Type c...

  • AngularJs笔记

    Controller构造 controller(name, constructor) constructor是co...

  • JavascriptBoolean

    Javascript Boolean Boolean 对象属性 1.constructor constructor...

  • Kotlin之constructor

    kotlin constructor 知识点包括: primary constructor secondary c...

网友评论

    本文标题:constructor

    本文链接:https://www.haomeiwen.com/subject/fctrrttx.html