在require.js中使用继承创建对象

时间:2017-08-03 05:19:44

标签: javascript requirejs

我有以下两个文件:

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遵循相同的对象创建模式。

1 个答案:

答案 0 :(得分:0)

我在下面提供了一个示例:希望它可以帮到你..

假设我们有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;
}

这里call()用于调用在其他地方定义的函数,但在当前上下文中

最后,您可以将XYZ()原型设置为:

XYZ.prototype = Object.create(ABC.prototype);
XYZ.prototype.constructor = XYZ;

这里,上面的行创建一个新对象,使其成为XYZ.prototype的值,并将继承自ABC.prototype

希望上述原型继承样本可以帮助您。快乐的编码:)