为了账号安全,请及时绑定邮箱和手机立即绑定

怎么在一个函数里修改另外一个函数里的函数?

怎么在一个函数里修改另外一个函数里的函数?

墨色风雨 2019-03-20 10:15:42
假设我现在有一段代码function globalActions(){  App = function(obj) {    console.log('This is a global App, app id is ' + obj.id);  }  Page = function(obj) {    console.log('This is a global Page, page id is ' + obj.id);  }  App({id: 'app'});  Page({id: 'page'});  myGlobalActions();}function pluginActions(){  let originalMyPluginActions = myPluginActions;  myPluginActions = function(){    App = undefined    Page = function(obj) {      console.log('This is a plugin Page, page id is ' + obj.id);    }    originalMyPluginActions.apply(this, arguments);  }}function myGlobalActions(){  myPluginActions(App, Page);}function myPluginActions(){  let originalApp = arguments[0];  let originalPage = arguments[1];  arguments[0] = function() {    console.log('hello I try to modify the global App fn');    return originalApp.apply(this, arguments);  };  arguments[1] = function() {    console.log('hello I try to modify the global Page fn');    return originalPage.apply(this, arguments);  };}pluginActions();globalActions();在myGlobalActions里定义App或Page(App = / Page =)是禁止的,能够修改的只有myGlobalActions和myPluginActions,请问怎么才能修改globalActions里的App和Page?
查看完整描述

2 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

如果是你提供的条件,那么是修改不了的,用术语说,这是 globalActions 函数的私有属性,外部是修改不了的。


查看完整回答
反对 回复 2019-04-10
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

动态更改一个块级作用域内部的变量,只能用闭包实现


查看完整回答
反对 回复 2019-04-10
  • 2 回答
  • 0 关注
  • 348 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信