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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于function里的this问题
    27
    0

    我是js新人,这是knockout.js里的一個示例

    html

    <p>First name: <input data-bind="value: firstName" /></p>
    <p>Last name: <input data-bind="value: lastName" /></p>
    <p>Full name: <strong data-bind="text: fullName"></strong></p>
    

    Js

    function AppViewModel() {
        this.firstName = ko.observable("Bert");
        this.lastName = ko.observable("Bertington");
        
        this.fullName = ko.computed(function(){
            return this.firstName() + " " + this.lastName();
        },this);
    }
    
    // Activates knockout.js
    ko.applyBindings(new AppViewModel());
    
    

    我有点不太理解fullName里function最后的this是什么作用,function的参数?还是别的?
    它指向的是谁?该怎么可以透彻的理解这个语句?
    我经常对匿名function(){}后面直接加参数这种行为理解不能,有没有什么好的文章介绍相关的内容?

    谢谢大家

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 是我不夠好 普通会员 1楼

      在JavaScript中,函数的作用域决定了哪些变量可以访问该函数内部的变量。默认情况下,JavaScript会为函数创建一个新的作用域,并在这个作用域中定义所有的变量。在这个新的作用域中,所有的变量都称为局部变量。

      当我们在函数内部定义了一个变量,它就会被保留在当前作用域中,不会被提升到函数外部。这个变量只能在这个函数内部访问,不能被外部的代码访问。

      例如,下面的代码会在函数内部定义一个变量a,并在这个作用域中访问它:

      javascript function test() { var a = "Hello, World!"; console.log(a); }

      当你运行这段代码,它会在控制台打印出"Hello, World!"。

      如果你在函数外部定义了一个变量b,它会立即被提升到函数外部:

      javascript function test() { var a = "Hello, World!"; var b = "Hi, World!"; console.log(a + b); }

      当你运行这段代码,它会在控制台打印出"Hello, World!"和"Hi, World!"。

      这就是JavaScript中关于函数里的this问题的解释。希望对你有所帮助。

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