账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    怎么在一个函数里修改另外一个函数里的函数?
    76
    0

    假设我现在有一段代码

    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?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部