我在javascript函数中遇到问题。 我已经在近20个文件中定义了一个函数,我无法单独修改它们。功能就像。
function next_question(thiss){
//some code
}
我已经在所有文件中包含了一个js文件,现在想在这个函数的开头做一些任务,也在结束时但不能在文件中编辑这个函数。 我可以添加代码是单独的JS文件。我想要上面的功能
function next_question(thiss){
//## add disabled class here
//some code
//## remove disabled class here
}
答案 0 :(得分:1)
要覆盖javascript函数,您可以将原始函数存储在变量中,重置next_question
函数并调用原始函数。
//oringal function
function next_question(thiss){
console.log(thiss);
}
//override function
var original_next_question = next_question;
next_question = function(thiss){
console.log('add disable');
original_next_question.call(this, thiss);
console.log('remove disable');
}
// calling now shows 3 console logs
next_question('some code');
使用call
方法调用具有给定this
值的函数和单独提供的参数。
答案 1 :(得分:0)
不推荐这样做但是在javascript中,函数就像任何其他对象一样,可以写出来。下面的代码将仅用于重新定义函数,如果它在声明原始函数之前执行,则会抛出致命错误。
next_question = function(this) {
//## add disabled class here
//some code
//## remove disabled class here
}