Discuss / JavaScript / 如果不重新定义子类的原型对象的话,只用call好像继承不了原型的非定义时定义的方法

如果不重新定义子类的原型对象的话,只用call好像继承不了原型的非定义时定义的方法

Topic source

alienation

#1 Created at ... [Delete] [Delete and Lock User]

如果不对子类的原型对象嫁接的话,后来在构造函数外定义的方法是不能被子类继承的,只继承了属性的定义

function school(props){
    this.school = props.school;
}

school.prototype.hello = function(){
    return(`HELLO!`)
}

function grade(props){
    school.call(this,props);
    this.grade = props.grade;
}

另外实在搞不懂constructor这东西

熠阳0121

#2 Created at ... [Delete] [Delete and Lock User]

constructor属性不影响任何JavaScript的内部属性。constructor其实没有什么用处,只是JavaScript语言设计的历史遗留物。由于constructor属性是可以变更的,所以未必真的指向对象的构造函数,只是一个提示。不过,从编程习惯上,我们应该尽量让对象的constructor指向其构造函数,以维持这个惯例。


  • 1

Reply