从对象文字 foo 外部,如何调用 foo 内部方法的内部函数?(见下面的代码)

let foo={

  name:"",

  method:function(){

    function bar(){

      return "bar";

    }

    //bar();   //(2)

  }

};

foo.method.bar(); //(1)

(1): 抛出一个 Uncaught TypeError: c.method.bar is not a function,我知道foo.method.bar正在搜索一个名为barinside的属性键/名称method,但它不存在,所以bar当从外部访问foo而不做时我该如何调用这 (2)



绝地无双
浏览 81回答 1
1回答

斯蒂芬大帝

鉴于您当前的代码,这是不可能的,因为在调用之后没有引用barremains ,并且因为也不调用自身。methodmethodbar如果你想要这样的东西,穿上bar外面的物体,让它暴露在外:let foo = {  name: "",  bar() {    return "bar";  },  method: function() {  }};console.log(foo.bar());理论上可以将bar函数直接放到 上method,但这会很奇怪:let foo = {  name: "",  method: function() {  }};foo.method.bar = function() {  return "bar";};console.log(foo.method.bar());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript