this指向问题(改变它的指向)】的更多相关文章

一.函数的调用方式决定了 this 的指向不同,但总的原则,this指的是调用函数的那个对象: 1.普通函数调用,此时 this 指向 全局对象window function fn() { console.log(this); // window } fn(); // window.fn(),此处默认省略window 2.在严格模式下"use strict",为undefined. function foo(){ "use strict"; //表示使用严格模式 c…
用call()和apply()改变this的指向,那什么时候用this呢?(构造函数),那为什么要用构造函数呢?(为了生成对象). 1.解决函数内this指向的问题 (1)var that/_this=this;在函数外提前声明一个变量 (2)通过call()和apply()改变this的指向 2.call()和apply()的区别 用法是一样的,但是参数形式不一样 call()  :   fn.call(obj,a,b) apply()   :   fn.apply(obj,[a,b]) 二者…
要懂得JavaScript中this的用法,首先需要知道,JavaScript中的作用域相关知识. var fun = function(){ var flag = 1; console.log(flag): } var flag = 0; fun(); console.log(flag); 首先看上面这段代码,结果 : 1    0  这个很好理解了,打印的函数内部 flag 的值为 1,全局打印 flag 的值为0. 那么再如果函数内部打印 this.flag 呢? var fun = fu…
js中this指向是一个难点,花了很长时间来整理和学习相关的知识点. 一. this this是JS中的关键字, 它始终指向了一个对象, this是一个指针; 参考博文: JavaScript函数中的this四种绑定形式 this指向及改变this指向的方法 二. this显示绑定和隐式绑定 1. this显示绑定  含义: 当一个函数没有明确的调用对象的时候, 也就是单纯作为独立函数调用的时候, 将对函数的this使用默认绑定: 绑定到全局的window对象  在显式绑定下: 函数将取得在"…
this是Javascript语言的一个关键字. 随着函数使用场合的不同,this的值会发生变化.但是有一个总的原则,那就是this指的是,调用函数的那个对象. 1.this指向的形式4种 a.如果是一般函数,this指向全局对象window; b.在严格模式下"use strict",为undefined. c.对象的方法里调用,this指向调用该方法的对象. d.构造函数里的this,指向创建出来的实例. 定义一个_this变量来存储this值,使全局对象里面的this 指向per…
一.this指向详解(彻底理解js中this的指向,不必硬背) 首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(非箭头函数)(这句话有些问题,后面会解释为什么会有问题,虽然网上大部分的文章都是这样说的,虽然在很多情况下那样去理解不会出什么问题,但是实际上那样理解是不准确的,所以在你理解this的时候会有种琢磨不透的感觉),那么接下来我会深入的探讨这个问题. 为什么要学习this?如果你学过面…
<body>     <div style="width: 200px;height: 200px;hotpink;"></div>     <script> const fn = function(a,b){             console.log(this.name + this.age + "是个大傻瓜" + a + b )         }         const obj = {         …
这个问题倒不是面向对象的,而是今天遇到js面向对象的时候一个例子的时候突然遇到了,call()方法,然后自己突然发现竟然忘记了,查了之后整理如下: xxx.call((对象名),参数a,参数b) xxx指需要改变this指向的对象名称. apply与它大致相同,不过传参格式为:xxx.call((对象名),[参数a,参数b]) xxx指需要改变this指向的对象名称.还有第三种bind()方法,bind方法会返回一个绑定好this以及参数的函数,并不会调用原函数.所以需要var一个新的变量去接受…
/** * 报错: * Cannot read property 'setState' of undefined * 原因: this指向不一致.btnAddCount中的this 和render中的this * 解决方法: * 方式一: 使用箭头函数 () => { } 箭头函数可以改变this指向,即谁调用,this指向谁 * 方式二: 绑定函数时,添加 ' .bind(this)' onClick={this.btnSubCount.bind(this) * * 在 React 里面,要将…
一.函数的定义方式 1.函数声明方式 function  关键字(命名函数) 2.函数表达式(匿名函数) 3.new  Function( ) var  fn = new  Function(‘参数1’,‘参数2’.....,‘函数体’) Function 里面参数都必须是字符串格式 第三种方式执行效率低,也不方便书写,很少使用 所有函数都是 Function 的实例(对象) 函数也属于对象 二. 函数的调用方式 // 1. 普通函数 this 指向 window(函数调用者) function…