改变函数中的this指向】的更多相关文章

在JavaScript 中,call.apply 和 bind 是 Function 对象自带的三个方法,这三个方法的主要作用是改变函数中的 this 指向,从而可以达到`接花移木`的效果.本文将对这三个方法进行详细的讲解,并列出几个经典应用场景. 1.call(thisArgs [,args...]) 该方法可以传递一个thisArgs参数和一个参数列表,thisArgs 指定了函数在运行期的调用者,也就是函数中的 this 对象,而参数列表会被传入调用函数中.thisArgs 的取值有以下4…
首先先说下正常的this指向问题 什么是this:自动引用正在调用当前方法的.前的对象. this指向的三种情况 1. obj.fun()     fun中的this->obj,自动指向.前的对象 2. new Fun()   Fun中的this->正在创建的新对象,new改变了函数内部的this指向,导致this指向实例化new的对象 3. fun()和匿名函数自调    this默认->window,函数内部的this,this默认是指向window的 回调函数中的this指向问题,…
js闭包中的this(匿名函数中的this指向的是windows) 一.总结 1.普通函数中的this指向的是对象,匿名函数中的this指向的是windows,和全局变量一样 2.让匿名函数中的this指向对象的两种方法 可以使用对象冒充强制改变this的指向 将this赋值给一个变量,闭包访问这个变量 二.js闭包中的this 闭包中的this问题 之前的课程中讲过this是在运行时基于函数的执行环境来绑定的 全局函数中的this是window,而当函数作为某个对象的方法调用时,this就是指…
一.函数内 this 的指向 1. this 的指向是当调用函数时确定的,调用的方式不同,this 的指向也就不同. 1.1 this 一般是指向调用者. 函数类型 this 的指向 普通函数 Window 定时器函数 Window 立即执行函数 Window 对象方法 对象本身 构造函数(原型对象) 实例对象 2.改变函数内部 this 指向 常用的 3 种方法:call().apply()和bind(). 2.1 call('this 指向的对象','参数1','参数2') 改变 this…
使用js中的定时器(setInterval,setTimeout),很容易会遇到this指向的问题. 直接上例子: 1 var name = 'my name is window'; 2 var obj = { 3 name: 'my name is obj', 4 fn: function () { 5 var timer = null; 6 clearInterval(timer); 7 timer = setInterval(function () { 8 console.log(this…
我们都知道在React中使用函数时,有两种写法,一是回调函数,二是直接调用,但需要在构造函数中绑定this,只有这样,函数中的this才指向本组件 总结一下没有绑定this的函数中的this指向 不管是在本组件的元素上调用的函数还是传递给子组件的函数,不管有没有绑定this,它们调用的都是本组件里的函数,即调用函数的this指向的是本组件 例如: class Parent extends React.Component { constructor(props) { supper(props);…
一.函数声明和函数表达式的区别: 函数声明放在if——else语句中,在IE8中会出现问题 函数表达式则不会 <script> if(true){ function f1(){ console.log("我是第一个函数"); } }else{ function f1(){ console.log("我是第二个函数"); } } f1();//我是第一个函数 f1();//我是第二个函数(IE8) //函数声明的函数,放在if--else语句中,在IE8中…
近日阅读<javascript设计模式与开发实践> 书中的apply和call调用函数层出不穷,很多妙用: 函数中的this是根据调用方式来决定的 函数调用方式有4中 1.直接调用 a(...arg); 函数a中的this总是绑定的window /严格模式下绑定的undefined2.方法调用 a.b(...arg); 方法函数b会返回当前执行上下文的对象a:如果a.b.c(); 那么此时返回的就是b3.构造器调用 new a(...arg);构造器不会引用任何上下文的内容,只是单纯的根据自己…
箭头函数和普通函数的区别如下. 普通函数:根据调用我的人(谁调用我,我的this就指向谁) 箭头函数:根据所在的环境(我再哪个环境中,this就指向谁) 一针见血式总结: 普通函数中的this: 1. this总是代表它的直接调用者(js的this是执行上下文), 例如 obj.func ,那么func中的this就是obj 2.在默认情况(非严格模式下,未使用 'use strict'),没找到直接调用者,则this指的是 window (常见的window的属性和方法有: alert, lo…
在javscript中,this 是在函数运行时自动生成的一个内部指针,它指向函数的调用者. 箭头函数有些不同,它的this是继承而来, 默认指向在定义它时所处的对象(宿主对象),而不是执行时的对象. var name = "window"; var test = { name:"demo", // 传统函数 getName1: function(){ console.log(this.name); // demo var that = this; setTimeo…