JS继承和原型分配
js inheritance and prototype assignment
我正在学习JS原型和继承,我了解到正确的方法是:
function A(){}
A.prototype.doSomething=function(){}
function B(){}
B.prototype = new A();
console.log( (new B()) instanceof A);//true
console.log( (new B()) instanceof B);//true
如您所见,我正在将 A 的新实例设置为 B但如您所见,它适用于
function A(){}
A.prototype.doSomething=function(){}
function B(){}
B.prototype = A.prototype;
console.log( (new B()) instanceof A);//true
console.log( (new B()) instanceof B);//true
但在这里:http://ejohn.org/apps/learn/#76
他们声称原型分配是错误的,我不明白为什么?
下面是第一个示例中的原因:
console.log( (new B()) instanceof A);//true
但
console.log( (new A()) instanceof B);//true
所以这是错误的用法。
正确的方法是以下一种方式执行此操作:
function Parent(){}
function Child(){}
Child.prototype = Object.create(Parent.prototype);
相关文章:
- Javascript原型通用Enquries和通过数组索引分配Id
- 将函数分配为原型函数的属性
- JS继承和原型分配
- Javascript:分配给对象或数组原型会导致括号不起作用
- 在不为原型分配属性的情况下扩展Javascript对象
- 将方法分配给函数内部或外部原型之间的差异
- 为什么可以't我使用原型将函数分配给变量
- 在 Javascript 中创建子类时,为什么要分配原型字段
- 为什么可以't我给“t”分配一个新值;这个“;在原型函数中
- 可以't在分配原型后访问构造函数
- 在分配原型之前,属性值是如何可用的
- 使用decorator将属性分配给非原型
- 函数没有分配给另一个函数'Chrome中的原型
- 为什么子类型必须为其分配父类型's子类型之外的原型's函数
- 使用名称空间将原型对象分配给对象中的匿名函数,这是未定义的
- 在JavaScript中重新分配原型
- 在构造函数中初始化的JavaScriptPrototype属性不会重写已分配的新原型
- javascript原型方法分配VS下划线_.extend
- 重新分配内置类型的原型
- 为什么要分配字符串'原型'到一个变量,然后使用它来设置对象的原型