Javascript子类对象不保留基类的属性/方法
Javascript subclass object not retaining properties / methods of base class
function Man(name){
this.name = name || 'John';
}
Man.prototype.getName = function(){
return this.name;
}
function Emp(id){
this.id = id;
}
Emp.prototype = Object.create(Man.prototype);
Emp.prototype.display = function(){
return this.id;
}
//Testing
var emp = new Emp(100);
emp.id ; // 100
emp.display() //100
然而
emp.name // undefined
emp.getName() // undefined
emp instanceof Man // true, proves inheritance
为什么emp.name
和emp.getName()
来得undefined
为什么
emp.name
和emp.getName()
来得undefined
因为您永远不会将Man
应用于新的Emp
实例。您还必须在子构造函数中调用父构造函数:
function Emp(id){
Man.call(this); // call parent constructor
this.id = id;
}
使用 ECMAScript 6 类,你必须调用super
:
class Emp extends Man {
constructor(id) {
super();
this.id = id;
}
}
相关文章:
- 为什么NgModelController属性/方法以$开头
- 如何使用设置属性方法在jquery中更改css
- 全局向对象添加属性/方法
- AngularJS $http.delete 在“类型错误:无法分配给只读属性'方法'”中中断
- 添加属性/方法的明确最佳方法
- 扩展类时继承而不是覆盖属性/方法
- Javascript子类对象不保留基类的属性/方法
- 将模型属性方法发送到客户端 Sails Angular
- 错误:参数 4 的值无效.属性“方法”:意外属性
- 类型错误:无法读取 nodejs 应用程序中未定义的属性“方法”
- 属性/方法无法初始化indexedDB
- 在javascript中定义属性方法的适当模式;类”;
- 创建两个函数来计算对象属性/方法
- 当getElementById返回null时,取消对属性/方法的访问
- 自定义属性方法如何在Sails js中工作
- 通过js中的数组属性方法进行迭代
- 为什么要添加属性/方法到视图模型AFTER定义
- 在Angular中,在闭包中引用服务属性/方法最合适的方式是什么?
- 列出一个对象的所有属性/方法
- Javascript:添加属性方法问题