最近我读到了MDC中的JavaScript调用用法
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call
如下所示的一个例子,我仍然不明白.
他们为什么在这里使用继承呢?
Prod_dept.prototype = new Product();
Run Code Online (Sandbox Code Playgroud)
这有必要吗?因为有一个超级构造函数的调用
Prod_dept()
Run Code Online (Sandbox Code Playgroud)
无论如何,像这样
Product.call
Run Code Online (Sandbox Code Playgroud)
这只是出于常见的行为吗?何时使用超级构造函数调用或使用原型链更好?
function Product(name, value){
this.name = name;
if(value >= 1000)
this.value = 999;
else
this.value = value;
}
function Prod_dept(name, value, dept){
this.dept = dept;
Product.call(this, name, value);
}
Prod_dept.prototype = new Product();
// since 5 is less than 1000, value is set
cheese = new Prod_dept("feta", 5, "food");
// since 5000 is above 1000, value will be 999
car = new Prod_dept("honda", 5000, "auto");
Run Code Online (Sandbox Code Playgroud)
谢谢你让事情更清楚
我一直在阅读很多关于javascript中"继承"的文章.其中一些使用,new而其他人推荐Object.Create.我读的越多,我就越困惑,因为它似乎存在无穷无尽的变体来解决继承问题.
有人可以向我展示最受欢迎的方式(如果有的话,还是事实上的标准)?
(我想有一个基础物体Model,我可以延伸RestModel或LocalStorageModel).