文档章节

Javascript中this 的默认绑定

w
 wangpan5
发布于 2016/05/27 17:13
字数 313
阅读 12
收藏 0

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模式。整个程序要么严格要么非严格。然而,有时候你可能会用到第三方库,其严格程度和你的代码有所不同。

© 著作权归作者所有

w
粉丝 0
博文 12
码字总数 4915
作品 0
海淀
程序员
私信 提问
探索JavaScript的this机制

前言 白的不能再白的小白,通过各种渠道学习到了this,和大家分享,有什么错误的话还望指出,共同学习进步。觉得好的话还望点个小赞,为继续坚持写文章增加动力。 正文 我在想写这篇文章的时...

cTomorrow
04/08
0
0
在 WebView 中建立 Android Apps

1. Web Apps的两种形式 在Android中,Web Apps有两种形式供用户访问。一种就是用手机上的浏览器直接访问的网络应用程序,这种情况用户不需要额外安装其他应用,只要有浏览器就行;而另一种,...

华宰
2011/09/06
1K
1
玩转 JavaScript 之详解 this

概述 this 关键字作为 JavaScript 中自动定义的特殊标识符,是我们不得不去面对、了解的知识点,很多初学者对 this 关键字可能会有含糊不清的感觉,但其实稍微理一理, this 并不复杂、不混乱...

Seymoe
03/20
0
0
【进阶3-1期】JavaScript 5 种 this 绑定全面解析

(关注福利,关注本公众号回复[资料]领取优质前端视频,包括Vue、React、Node源码和实战、面试指导) 本周正式开始前端进阶的第三期,本周的主题是this全面解析,今天是第9天。 本计划一共2...

yygmind
2018/11/29
0
0
Java_脚本引擎_01_用法入门

一、前言 最近有个需求,需要在js中调用java,这样能避免更新java,从而实现代码的热更新。 于是想到用 Nashorn JavaScript 引擎。 二、概述 通过 JDK 8 的 Nashorn JavaScript 引擎 ,可以很...

shirayner
2018/08/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Vue warn]: Computed property "activeNames" was assigned to but it has no setter.

在使用 vue,element-ui时,如下代码 <template> <el-form :model="numberValidateForm" ref="numberValidateForm"> <el-form-item> <el-tabs v-model="activeNames" @tab-cl......

牧云橙
31分钟前
5
0
重构-改善既有代码的设计-6.2内联函数

6.2内联函数 动机 本书经常以简短的函数表现动作意图,这样会使代码更清晰易读。但有时候你会遇到某些函数,其内部代码和函数名称同样清晰易读。也可能你充够了该函数的内部实现,使其内容和...

还仙
32分钟前
6
0
Less 混入

混合类似于编程语言中的函数。 Mixins 是一组CSS属性,允许我们将一个类的属性嵌套于另一个类,被嵌入的类可以看作是变量,并且包含类名作为其属性,也就是说我们可以用一个类定义样式然后把...

凌兮洛
35分钟前
6
0
频繁FGC的真凶原来是它

频繁FGC的真凶原来是它 上周排查了一个线上问题,主要现象是CPU占用过高,jvm old区占用过高,同时频繁fgc,我简单排查了下就草草收场了,但是过后我对这个问题又进行了复查,发现问题没有那...

每天晒白牙
35分钟前
6
0
简单的树形菜单如何写

业务需求 数据结构中含有图片、名称、children的树形结构,需要展示出每一级的图片名称和图片,找了些树形图的插件,都没有展示大的图片的,一般都是小图标,就自己试着写一个包含图的简单的...

tianyawhl
37分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部