重写/隐藏Javascript函数
是否可以在Javascript中执行以下操作:重写/隐藏Javascript函数,javascript,jquery,Javascript,Jquery,是否可以在Javascript中执行以下操作: var myFunction = function() { return true; }; var anotherFunction = function () { return false; }; $(function () { this.myFunction = anotherFunction; myFunction(); // to return false }); 我的直觉是肯定的,但它不起作用。如何实
var myFunction = function() {
return true;
};
var anotherFunction = function () {
return false;
};
$(function () {
this.myFunction = anotherFunction;
myFunction(); // to return false
});
我的直觉是肯定的,但它不起作用。如何实现此功能?它确实有效,您刚刚输入了一个导致调用旧函数的输入错误(错过了此)
$(function () {
this.myFunction = anotherFunction;
this.myFunction(); // to return false
});
或
在过度定义的上下文中,this.myFunction
和myFunction
指的是不同的东西
这是您的固定小提琴:它确实有效,您刚刚输入了一个导致调用旧函数的打字错误(错过了
this
)
$(function () {
this.myFunction = anotherFunction;
this.myFunction(); // to return false
});
或
在过度定义的上下文中,this.myFunction
和myFunction
指的是不同的东西
这是您的固定参数:您可以使用另一个同名变量覆盖外部范围内的任何变量:
var myFunction = function() {
return true;
};
var anotherFunction = function () {
return false;
};
$(function () {
var myFunction = anotherFunction; // override the myFunction name inside this scope
myFunction(); // returns false
});
myFunction(); // returns true
您可以在此处阅读有关作用域的更多信息:您可以使用另一个同名变量覆盖外部作用域内的任何变量:
var myFunction = function() {
return true;
};
var anotherFunction = function () {
return false;
};
$(function () {
var myFunction = anotherFunction; // override the myFunction name inside this scope
myFunction(); // returns false
});
myFunction(); // returns true
您可以在此处阅读更多有关范围的信息:适合我
为我工作
谢谢你的回答+1var myFunction=另一个函数;//它是重写还是使用新变量?@SHIN它使用一个新变量来隐藏外部范围中的变量。正如您在外部范围中看到的,myFunction()仍然返回true。我想你可以说,$()中的代码是在最后一行调用myFunction()之后执行的,但即使它是在前面执行的,外部作用域中的myFunction也不会受到影响。谢谢你的回答+1var myFunction=另一个函数;//它是重写还是使用新变量?@SHIN它使用一个新变量来隐藏外部范围中的变量。正如您在外部范围中看到的,myFunction()仍然返回true。我想你可能会说,$()中的代码是在最后一行调用myFunction()之后执行的,但是即使它是在之前执行的,外部作用域中的myFunction仍然不会受到影响。其中之一是,它已经很晚了。谢谢大家的帮助。其中之一就是——这是一天中很晚才发生的愚蠢的事情。谢谢大家的帮助。