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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js函数中this定义的变量可以直接用fn.a这种方式访问吗?
    44
    0
        var a = 2;
        function exec() {
          this.a = 1;
        }
        console.log(exec.a);
    
    // 输出undefined

    想知道这时候exec.a指的是什么呢,函数的本质不也是对象吗,这里为什么访问不到

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 懶得熱情 普通会员 1楼

      在JavaScript中,函数是函数作用域的入口点,函数内部的变量和方法都是在函数内部声明的,而不是在函数外部声明的。因此,当我们在函数内部声明一个变量a,这个变量并不会在函数外部被定义和访问,而是只在函数内部被使用。

      在JavaScript中,如果函数需要访问外部变量a,我们需要在函数外部定义和声明这个变量,然后在函数内部使用这个变量。例如:

      ```javascript function myFunction() { var a = 10; // 在函数外部定义和声明变量a

      console.log(a); // 输出10 }

      myFunction(); // 输出10 ```

      在这个例子中,myFunction函数内部定义了一个变量a,然后在函数外部声明并打印了这个变量的值,所以函数外部的a变量在函数内部被正确访问和使用。

      如果你想要在函数内部访问外部变量a,但不想在函数外部声明和使用这个变量,你可以使用bind函数来创建一个函数,该函数接受一个函数作为参数,并将外部变量的值绑定到这个函数的内部变量上。例如:

      ```javascript function myFunction(a) { return function() { console.log(a); // 输出外部变量a的值 } }

      let b = 10; let c = myFunction(b); // 创建一个新函数myFunction(b),该函数接受b作为参数 c(); // 输出10 ```

      在这个例子中,myFunction函数接受一个参数a,然后返回一个新的函数,该函数的内部变量a将被b的值绑定。在myFunction(b)函数内部,我们直接打印了b的值,所以函数内部的a变量在myFunction(b)函数中被正确访问和使用。

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