重写/隐藏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 }); 我的直觉是肯定的,但它不起作用。如何实

是否可以在Javascript中执行以下操作:

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仍然不会受到影响。其中之一是,它已经很晚了。谢谢大家的帮助。其中之一就是——这是一天中很晚才发生的愚蠢的事情。谢谢大家的帮助。