首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JavaScript中的this指向问题

    实际应用中,常见的this指向问题 在嵌套函数中丢失this:当在一个函数内部定义另一个函数,并在内部函数中使用this时,this的指向会发生变化。...可以使用箭头函数或通过在外部函数中将this赋值给一个变量来解决这一问题。 事件处理函数中的this:在事件处理函数中,this通常指向触发事件的元素。...可以使用箭头函数、bind()方法,或通过在外部函数中将this赋值给一个变量来解决这一问题。...可以使用箭头函数、bind()方法,或通过在外部函数中将this赋值给一个变量来解决这一问题。 对象方法中的this:在对象方法中,this通常指向调用该方法的对象。...但是,如果将该方法赋值给一个变量,并通过变量来调用方法,this将指向全局对象。可以使用bind()方法或箭头函数来解决这一问题

    23960

    归纳总结this的指向问题

    this this:上下文,会根据执行环境变化而发生指向的改变. 1.单独的this,指向的是window这个对象 alert(this); // this -> window 2.全局函数中的this...strict'; alert(this); // undefined } demo(); 3.函数调用的时候,前面加上new关键字 所谓构造函数,就是通过这个函数生成一个新对象,这时,this就指向这个对象...abc'); // abc demo.call(null); // this -> window demo.call(undefined); // this -> window 5.定时器中的this,指向的是...window setTimeout(function() { alert(this); // this -> window ,严格模式 也是指向window },500) 6.元素绑定事件,事件触发后...'click',function() { alert(this); // window }.bind(window)) } 8.对象中的方法,该方法被哪个对象调用了,那么方法中的this就指向该对象

    28420

    面试官:聊聊 this 指向问题

    什么情况下会涉及 this 函数作用域的情况下,才会有 this 绑定问题 或者 class 类 使用 call,apply, bind 严格模式 "use strict" 非严格模式 严格模式下的...this 指向问题 普通函数,this 指向 undefined,不使用 call,bing,apply 改变其 this 指向的情况下 console.log("window===>",this) /...b() // window function c() {console.log("c===>", this)} c() // window } a() 非严格模式下,this 指向问题...window var fn = obj.b.fn fn() // "Ken" this 指向 window 从上面的观察,以及实践,我们或许可以得出一个结论: 箭头函数 this 指向问题跟作用域有关系...call,apply.bind 发现个小问题,貌似 箭头函数无法在执行阶段改变 this 指向问题 var a = "Ken" var obj = { a: "小仙女", b: {

    29320

    关于JS中this指向问题的探究

    写在前面 本篇文章的所有例子来源都是《JS设计模式与开发实践》这本书,写这篇文章之前也去查阅了很多关于this指向问题的探讨,包括但不仅仅有像阮一峰老师,还有很多的博主的帖子,还是决定写这篇文章有以下几个原因...js中的this this js中的this总是指向一个对象,也就是一个obj,但是具体指向的是哪一个obj是根据具体的运行时函数的执行环境动态绑定的,而不是函数被声明的环境!...this的指向 如果不考虑常用的with和eval的情况下,具体到实际应用中,this的指向大致可以分为下面四类: 作为对象的方法调用 作为普通函数调用 构造器调用 Function.prototype.call...,原本这个this是指向document的,当document.getElementById这个方法被调用的时候this指向也确实是改document 但是当我们使用getId来引用这个,他的this...getId = document.getElementById var div = getId('div1') console.info(div.id) //div1 最后 其实this指向问题

    1.4K31

    this指向

    1.this 1.1函数内部的this指向 这些 this 的指向,是当我们调用函数的时候确定的。调用方式的不同决定了this 的指向不同 一般指向我们的调用者. ?...1.2改变函数内部 this 指向 JavaScript 为我们专门提供了一些函数方法来帮我们更优雅的处理函数内部 this 的指向问题,常用的有 bind()、 call()、apply() 三种方法...应用场景: 经常跟数组有关系 // JavaScript 为我们专门提供了一些函数方法来帮我们更优雅的处理函数内部 this 的指向问题,常用的有 bind()、...this指向 不同点: call 和 apply 会调用函数, 并且改变函数内部this指向....比如借助于数学对象实现数组最大值最小值 bind 不调用函数,但是还想改变this指向. 比如改变定时器内部的this指向.

    1.1K10
    领券