1、全局代码中的this 是指向全局对象,在浏览器中是window alert(this)//window 2、作为单纯的函数调用: function fooCoder(x) {this.x =x; } fooCoder(2); alert(x);//全局变量x值为2 在普通函数中的this,指向了全局函数,即window ,在严格模式下,是undefined 3、作为对象的方法调用: varname ="clever...
在JavaScript中,this关键字是一个非常重要的概念,它指向当前执行代码的环境对象。this的值在函数被调用时确定,而不是在函数定义时确定。this的作用域取决于函数的调用方式。以下是几种常见的情况: 1. 全局作用域中的this 在全局执行上下文中(即任何函数体外部),this指向全局对象。在浏览器中,这通常是window对象。
丢失的 this 在某些情况下会丢失 this 的指向,此时,我们就需要借助 call、apply 和 bind 来改变 this 的指向问题。 示例一:当 "getName" 方法作为 "boy" 对象的属性调用时,this 指向 "boy" 对象,当另外一个变量引用 "getName" 方法时,因为它是作为普通函数调用,所以 this 指向全局对象window varboy ={ n...
在js函数中,函数的拥有者默认绑定this. 因此,在函数中,this指的是全局对象[object Window] function myFunction(){ return this; } 1. 2. 3. 4.函数中的this(严格模式) js严格模式不允许默认绑定,因此,在函数中使用时,在严格模式下,this是未定义的undefined “use strict”; function myFunction(){ return...
JS必知必会: 作用域 | 上下文 this | 闭包 目标 作用域、函数提升、变量提升、块级作用域、作用域链、变量查找规则、IFFE的概念及使用 上下文 this 闭包 知识要点 作用域 作用域(scope)就是变量的可访问范围,即作用域控制变量的可见性和生命周期。 作用域链 多层包裹 | 多层调用 let a = 'global' console....
作用域(链)和 this 。声明提升 大部分编程语言都是先声明变量再使用,但在 JS 中,事情有些不一样:console.log(a); // undefinedvar a = 1;上面是合法的 JS 代码,正常输出 undefined 而不是报错 Uncaught ReferenceError: a is not defined 。为什么?就是因为声明提升(hoisting)。变量声明 参考:https...
满满的干货,面试必bei系列,参考大量资料,并集合自己的理解以及相关的面试题,对JS核心知识点中的作用域、闭包、this、上下文进行了梳理。上一篇介绍了作用域和上下文。因为感觉这两个概念互相纠缠,上下文的生成会依赖作用域规则。本篇重点介绍闭包和this。
4.函数执行完了,this绑定在window上 `function func(){ var a=1; setTimeout(function(){ console.log(a) },100); } func();// 1` 深度理解js静态作用域 js静态作用域 在第一段代码中很多人会理所当然的认为会打印出f2来,会说f2是个function,js是个以function为作用域划分,然而事情往往事与愿违--...
也就是说,普通情况下,this指向调用函数时的对象。在全局执行时,则是全局对象。 箭头函数的this,因为没有自身的this,所以this只能根据作用域链往上层查找,直到找到一个绑定了this的函数作用域(即最靠近箭头函数的普通函数作用域,或者全局环境),并指向调用该普通函数...