为了便于使用非标准url方案的JsonRest存储,我试图继承JsonRest并覆盖_getTarget(id)
函数。这是我继承的javascript类的样子:
define([
"dojo/_base/declare",
"dojo/store/JsonRest",
],
function(declare, JsonRest) {
return declare(JsonRest, {
_getTarget: function(id){
var target = this.target;
if(typeof id != "undefined"){
if(target.indexOf("{id}") != -1) {
//use template
target = target.replace("{id}", id);
} else {
target = this.inherited(id);
}
}
return target;
},
});
});
然而,行target = this.inherited(id);
会返回错误:Uncaught TypeError: Cannot read property 'callee' of undefined
。
我查看了文档,我认为我做得对: Intel syntax
调用基类_getTarget(id)
函数的正确方法是什么?
答案 0 :(得分:5)
如果你仔细查看你链接的文档部分,你应该从字面上将arguments
对象传递给this.inherited
- 那就是包含callee
的内容它正在查找的属性(并且将包括id
和任何其他参数,以便传递给超类)。
在几个段落中,文档还解释了如何使用除了传递相同参数之外的参数调用this.inherited
,如果需要:您可以在之后传递自定义参数 {{ 1}},即arguments
。 this.inherited(arguments, [ ... ])
始终必须是第一位。