这怎么不提示“ http://127.0.0.1/sendRequest”? (在http://jsfiddle.net/Gq8Wd/52/提供)

var foo = {
    sendRequest: function() {
        alert(bar.getUrl());
    }
};

var bar = {
    getUrl: function() {
        return 'http://127.0.0.1/' + arguments.callee.caller.name;
    }
};

foo.sendRequest();

最佳答案

在执行操作时,将值放在对象文字中根本不会影响该值。

var foo = {
    sendRequest: ...


该功能值仅受不包含名称的功能表达式的影响。

             ... function() {
        alert(bar.getUrl());
    }


您需要在函数表达式本身[fiddle]中包含所需的名称。

var foo = {
    sendRequest: function sendRequest() {

09-07 16:31