为什么在调用父构造函数时在[]中发送数据?

时间:2012-09-06 14:08:43

标签: javascript extjs

我来自C / C ++语法系列,因此我不熟悉这些内容。

constructor: function(manufacturer, model, topSpeed, maxAltitude){

   // initialise our config object
   this.initConfig();

   if(maxAltitude){
       this.setMaxAltitude(maxAltitude);
   }

   // call the parent class' constructor
   this.callParent([manufacturer, model, topSpeed]);
}

所以,现在当我调用父的构造函数时,为什么我在[]中包含数据?当我在C#中做类似的事情时,我只是发送像任何正常函数一样的数据。

这不可能只是:

this.callParent(manufacturer, model, topSpeed);

此示例来自

  

Ext-JS 4 Web应用程序开发指南

但我认为这是一个JavaScript问题。

谢谢。

1 个答案:

答案 0 :(得分:3)

Well .callParent()是ExtJS提供的类系统实用程序。它需要将参数作为数组,因为它将使用.apply()来调用另一个函数。

如果他们愿意,他们可以写它来构建自己的数组。它在当前形式中可能更有用,因为它为您提供了更多的灵活性,而且它不像在JavaScript中使数组很难。

(我不知道完全它做了什么,因为我不使用ExtJS。)