我有这个班级
/**
* @constructor
* @param {...*} var_args
*/
var Map = function(var_args) {
// insert all pairs of parameters as objects in the map
};
/**
* @constructor
* @extends {Map}
* @param {...*} var_args
*/
var ExtendedMap = function(var_args) {
goog.base(this, var_args); //<-- this obviously doesn't work!
};
goog.inherits(ExtendedMap, Map);
问题是ExtendedMap
需要扩展一个类(Map
),它的构造函数已经有一个var_args。如何在不弄乱父级构造函数的情况下添加自己的构造函数?我正在使用 google-closure编译器。
答案 0 :(得分:1)
您不需要使用goog.base
,这只是一种让事情变得简单的方法。在这种情况下,您可以直接调用Map的构造函数并使用apply而不是调用:
/**
* @constructor
* @extends {Map}
* @param {...*} var_args
*/
var ExtendedMap = function(var_args) {
Map.apply(this, arguments);
};
goog.inherits(ExtendedMap, Map);