Javascript“this"变量从特定对象切换到DOMWindow

Javascript "this" variable switching from specific object to DOMWindow

本文关键字:对象 DOMWindow this quot 变量 Javascript      更新时间:2023-09-26

我有一个问题,Javascript强迫[对象DOMWindow]到一个函数我有一个对象的原型。我得到的完整错误如下:

Uncaught TypeError: Object [object DOMWindow] has no method 'positionconvert'

基本上我所做的是在对象原型中在某些条件下我创建了一个var intervalwindow.setInterval()计数:

var interval = window.setInterval(this.alertanimate, 500);

alertanimate函数在同一个原型中,并在这一行使用this变量:

this.positionconvert(this.alerticon, -69, 55);

(positionconvert是另一个函数,alerticon是一个对象)。问题是,当我得到window.setInterval涉及js开始假设this是DOM,而不是对象原型,就像我的意图,提出上述错误。当我将其硬编码为与特定对象一起工作时,它可以工作,但是在这个变量的某个地方传递this变量失去了与对象的连接。我希望这一切都讲得通?我做错了什么?

this.alertanimate传递给setIntervall将失去与主对象的连接。this在函数中引用的内容完全由如何调用函数来定义。如果你将一个函数传递给setTimeout,那么this将引用window

你可以这样做:

var self = this;
window.setInterval(function() {
    self.alertanimate();
}, 500);

在较新的浏览器中,您也可以使用.bind() [MDN](参见文档中的替代实现):

window.setInterval(this.alertanimate.bind(this), 500);

欢迎使用JavaScript。每次引入函数作用域时,都会重新绑定this

<>之前Var outer = function() {Var that = this;//that和this指向同一个对象:outerVar inner = function() {//现在that指向外部,this指向内部…}//that和this再次指向同一个对象:outer…}之前

你没有发布你的完整代码,但我怀疑你的一个内部this并不意味着你认为它的作用