侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130555 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

Javascript中this 的默认绑定

2024-05-10 星期五 / 0 评论 / 0 点赞 / 5 阅读 / 1326 字

1.默认绑定首先要介绍的是最常用的函数调用类型:独立函数调用。可以把这条规则看作是无法应用其他规则时的默认规则:示例:function (){ console.log(this.a);}var

1.默认绑定首先要介绍的是最常用的函数调用类型:独立函数调用。可以把这条规则看作是无法应用其他规则时的默认规则:示例:

function (){    console.log(this.a);}var a = 2;foo(); //2

从上可以看到当调用foo()时,this.a 被解析成了全局变量a,通过分析this的调用位置可以得到this指向全局对象。如果使用严格模式(strict mode),则不能将全局对象用于默认绑定,因此this会绑定到undefined:

function foo(){    "use strict";        console.log(this.a);}var a = 2;foo();//TypeError:this is undefined

这里有一个微妙但是非常重要的细节,虽然this 的绑定完全取决于调用位置,但是只有foo()运行在非strict mode 下时,默认绑定才能绑定到全局对象;在严格模式下调用foo()则不影响默认绑定:

function foo(){    console.log(this.a);}var a = 2;(function(){    "use strict";        foo(); //2})();

注意:通常来说你不应该在代码中混合使用strict 模式 和 非strict模式。整个程序要么严格要么非严格。然而,有时候你可能会用到第三方库,其严格程度和你的代码有所不同。

广告 广告

评论区