对象创建使用继承在require.js
问题描述:
我有以下两个文件:对象创建使用继承在require.js
product.js,
define(function(products) {
return {
reserveProduct: function(id) {
console.log(id);
}
}
});
purchase.js
define(["products"], function(products) {
return {
function(id) {
products.reserveProduct(id);
}
}
})
我创建购买对象。
new purchase(1);
现在我想purchase.js延伸AnalyExtendpurchase.js
并创建一个新的对象作为
new AnalyExtendpurchase(1);
我想通过ID作为参数传递给父对象即购买对象
通常在Java的等效代码将为:
Purchase.java
public class Purchase{
purchase(int id){
this.id=id;
}
}
AnalyExtendpurchase.java
AnalyExtendpurchase extends purchase{
AnalyExtendpurchase(int id){
super(id);
}
}
对象创建Java中
new AnalyExtendpurchase(10);
我想用requirejs遵循同一对象的创建模式。
答
我提供以下示例例如:希望它可以帮助你..
比方说,我们有ABC()构造函数,如:
function ABC(firstName, lastName){
this.firstName = firstName;
this.lastName = lastName;
}
然后让我们来定义XYZ()构造函数,
function XYZ(firstName, lastName,subject) {
ABC.call(this, firstName, lastName);
this.subject = subject;
}
这里称之为()用于调用定义在其他地方的功能,但在目前情况下
最后,你可以设定XYZ()的原型为:
XYZ.prototype = Object.create(ABC.prototype);
XYZ.prototype.constructor = XYZ;
这里,上面的行创建一个新的对象,并使其XYZ.prototype的价值,将继承ABC.prototype
希望以上原型继承样本可以帮助您。快乐编码:)
你为什么用'new'调用'purchase'?它看起来不像构造函数,它不会传入任何实例。 – Bergi
首先忘记require.js,并学习如何在单个文件中使用JavaScript。 (将所有内容放入其自己的模块之后都是微不足道的)。我建议看一下ES6'class'语法。 – Bergi
我有限制使用require.js和我有限制遵循继承模式。 –