美文网首页
原型对象的constructor属性的作用

原型对象的constructor属性的作用

作者: 星月西 | 来源:发表于2017-04-20 22:25 被阅读199次

1.原型链继承

最常用的原型链继承方式应该时组合继承,示例如下:

function Person(name){
    this.name=name;
}

Person.prototype.show=function(){
    console.log(this.name);
}

function Student(name){
    Person.call(this,name);
}

Student.prototype=new Person();
Student.prototype.constructor=Student;

var student=new Student('jc');
student.show();

这里大部分资料都会推荐我们,在改写了子类的原型对象时,再将其constructor属性重置为其构造函数,但是不禁会有疑问,这个construtor属性有什么作用呢?

2.为类添加新的方法

当类的构造函数在内层作用域中,无法直接访问到时,可以通过其示例的constructor属性访问到其构造函数,就可以为其原型对象添加新的方法

student.constructor.prototype.print=function(){
    console.log('red');
}
student.print();

3.解析构造函数的参数名

可以通过toString方法获取到构造函数的代码,并解析其参数

var argu=student.constructor.toString().match(/\(.*\)/)[0].slice(1,-1).split(',');
console.log(argu);

或许angular的依赖注入,根据传入的参数判断出相应的服务也是用类似的思路实现的。

PS:数组和字符串中的slice方法中,如果传入的参数为负,可以理解为倒数第几个元素,例如-1是指的倒数第一个元素。

相关文章

  • 原型对象的constructor属性的作用

    1.原型链继承 最常用的原型链继承方式应该时组合继承,示例如下: 这里大部分资料都会推荐我们,在改写了子类的原型对...

  • Js相关笔记-3

    原型对象的constructor 修改原型对象时,一般要同时修改constructor属性的指向。 // 坏的写法...

  • JavaScript中的constructor

    constructor是Object的原型对象的属性,所以实例中会继承这个属性。 constructor属性始终指...

  • JavaScript中的prototype, construct

    定义 prototype是函数(构造函数)的属性,指向原型对象。 constructor是原型对象的属性,指向当前...

  • 原型链

    prototype:构造函数有一个prototype属性,指向实例对象的原型对象。constructor:原型对象...

  • JS中的 原型链

    基础:只有构造函数有原型属性 - prototype,它是一个对象原型对象中有个constructor属性,con...

  • 原型继承

    每一个实例也有一个constructor属性,默认调用prototype对象(原型对象)的constructor属...

  • 原型和原型链

    原型 所有函数都有一个prototype属性,指向一个原型对象;原型对象有一个constructor属性,指向这个...

  • 继承的几种方式

    构造函数,原型和实例的关系每个构造函数都有一个原型对象prototype,原型对象中有个constructor属性...

  • JS中的原型和原型链,继承

    创建的构造函数 系统默认有一个prototype原型属性,指向 原型对象, 而原型对象有一个constructor...

网友评论

      本文标题:原型对象的constructor属性的作用

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