JS回调函数中的this指向(详细)】的更多相关文章

首先先说下正常的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中的定时器(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…
任何变量或对象都有其赖以生存的上下文.如果简单地将对象理解为一段代码,那么对象处在不同的上下文,这段代码也会执行出不同的结果. 例如,我们定义一个函数 getUrl 和一个对象 pseudoWindow. function getUrl() { console.log(this.document.URL); } var pseudoWindow = { document: { URL: "I'm fake URL" }, getUrl1: getUrl, getUrl2: functi…
=> 可以简化以前的回调函数的调用,具体来说: 今后,几乎所有的回调函数都可用箭头函数简化 比如: 1. 所有回调函数都可: 去function改=> 2. 如果函数体只有一句话: 可省略{} 如果这一句话还是return,可省略return 3. 如果只有一个参数: 可省略() 但是,如果没有参数,必须保留空() 更大用途: 箭头函数内外共用同一个this——取代bind 特殊: 如果不希望内外共用this,就不能用箭头函数 比如事件处理函数: elem.addEventListener(&…
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>函数的角色</title> </head> <body> <script> // 二…
有时候, 需要以不同的参数调用某个URL,并且在回调函数中仍然可以访问正在使用的参数, 这时候, 需要使用闭包保存当前参数, 否则, 当回调函数执行时, 之前的参数很可能早已被修改为最后一个参数了. 具体见代码. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <he…
js闭包中的this(匿名函数中的this指向的是windows) 一.总结 1.普通函数中的this指向的是对象,匿名函数中的this指向的是windows,和全局变量一样 2.让匿名函数中的this指向对象的两种方法 可以使用对象冒充强制改变this的指向 将this赋值给一个变量,闭包访问这个变量 二.js闭包中的this 闭包中的this问题 之前的课程中讲过this是在运行时基于函数的执行环境来绑定的 全局函数中的this是window,而当函数作为某个对象的方法调用时,this就是指…
一.函数声明和函数表达式的区别: 函数声明放在if——else语句中,在IE8中会出现问题 函数表达式则不会 <script> if(true){ function f1(){ console.log("我是第一个函数"); } }else{ function f1(){ console.log("我是第二个函数"); } } f1();//我是第一个函数 f1();//我是第二个函数(IE8) //函数声明的函数,放在if--else语句中,在IE8中…
在JavaScript 中,call.apply 和 bind 是 Function 对象自带的三个方法,这三个方法的主要作用是改变函数中的 this 指向,从而可以达到`接花移木`的效果.本文将对这三个方法进行详细的讲解,并列出几个经典应用场景. 1.call(thisArgs [,args...]) 该方法可以传递一个thisArgs参数和一个参数列表,thisArgs 指定了函数在运行期的调用者,也就是函数中的 this 对象,而参数列表会被传入调用函数中.thisArgs 的取值有以下4…
☞ ░ 前往老猿Python博文目录 ░ 一.使用全局变量进行变量传递 OpenCV-Python中可以使用setMouseCallback来设置鼠标事件的回调函数,我们来看个样例. 1.1.案例1代码 import numpy as np import cv2 #freetype mode = 0 #创建回调函数 def OnMouseAction(event,x,y,flags,param): global x1, y1 img = img1 if mode == 0 and event =…