我正在使用Slickgrid,并且我想更改编辑器的行为。我尝试重载其中一个功能,而不是复制粘贴,但是它不起作用。我无法读取loadValue函数。
loadValue定义为(省略了一些代码)
IntegerCellEditor : function(args) {
this.loadValue = function(item) {
defaultValue = item[args.column.field];
$input.val(defaultValue);
$input[0].defaultValue = defaultValue;
$input.select();
};
}
我试过的是:
function tristateIntegerCellEditor(check_field) {
var f = IntegerCellEditor;
var f_loadValue = f.loadValue;
f.loadValue = function(item) {
f_loadValue(item);
if (check_field) {
if (!item[check_field]) {
$select.disable();
}
}
};
return f;
}
有什么办法可以代替我的职能吗?
最佳答案
您需要f_loadValue.call(this, item);
否则,将调用旧的loadValue
get及其上下文(this
)作为window
(默认值)。
有关:
Adding hooks
_.wrap
关于javascript - 如何重载JavaScript函数? (更改Slickgrid的编辑器),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6775102/