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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    传递一个值到函数里 是选择参数传递 还是直接闭包读取?
    30
    0

    传参形式

    ~funciton (userName) {
        method(userName);
        
        method0(userName);
        
        
        function method(id) {
            alert(id);
        }
        
        function method0(id) {
            // method0 本身并不需要 id 但 method1 需要 接收也是为了调用 method1 时传递过去
            method1(id);
        }
        
        function method1(id) {
            console.log(id);
        }
    }('*#02#')

    闭包形式

    ~funciton (userName) {
        method();
        
        method0();
        
        
        function method() {
            alert(userName);
        }
        
        function method0() {
            // method0 本身并不需要 id 但 method1 需要 接收也是为了调用 method1 时传递过去
            method1();
        }
        
        function method1() {
            console.log(userName);
        }
    }('*#02#')

    显然闭包简直好用爆了 不过我记得函数式编程的规范是建议函数用到的外部值都需要传参进去 这才能形成纯函数 是吧 这样到底有什么好处 辣么用真的不嫌麻烦吗?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 天地任逍遥 普通会员 1楼

      在JavaScript中,函数内部直接使用闭包读取参数可以用于传递值。以下是一个简单的例子:

      ```javascript function outerFunction() { var value = 10; function innerFunction() { console.log(value); } return innerFunction; }

      var inner = outerFunction(); inner(); // 输出10 ```

      在这个例子中,outerFunction内部有一个innerFunctioninnerFunction是闭包,它可以访问到outerFunction的局部变量value。当outerFunction被调用时,innerFunction会立即被调用,因此它可以看到outerFunction内部的value

      如果你想传递值给函数,你可以使用arguments对象,这是一个包含函数所有参数的对象:

      ```javascript function outerFunction() { var value = 10; function innerFunction() { console.log(arguments[0]); } return innerFunction; }

      var inner = outerFunction(5); inner(); // 输出5 ```

      在这个例子中,innerFunction是闭包,它可以从outerFunction中访问到arguments对象的0作为参数。因此,innerFunction可以接收任何传递给它的值。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部