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

Why sending data in [] when calling parent constructor?

本文关键字:数据 调用 构造函数 为什么      更新时间:2023-09-26

我来自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);

这个例子来自

ExtJS 4 Web应用程序开发食谱

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

谢谢。

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

如果他们愿意的话,他们可以编写它来构建自己的数组。在当前的形式中,它可以说更有用,因为它给了你更多的灵活性,而且在JavaScript中制作数组并不困难。

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