Javascript“this"变量从特定对象切换到DOMWindow
Javascript "this" variable switching from specific object to DOMWindow
我有一个问题,Javascript强迫[对象DOMWindow]到一个函数我有一个对象的原型。我得到的完整错误如下:
Uncaught TypeError: Object [object DOMWindow] has no method 'positionconvert'
基本上我所做的是在对象原型中在某些条件下我创建了一个var interval
用window.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
。
你没有发布你的完整代码,但我怀疑你的一个内部this
并不意味着你认为它的作用
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何使用json将对象列表从java转换为javascript
- 序列化数据属性中对象的最可靠方法
- 如何访问声音管理器2创建的声音对象
- FabricJs-限制主对象内添加对象的移动区域
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 将函数附加到 DOMWindow 对象
- Javascript“this"变量从特定对象切换到DOMWindow
- Jquery返回对象DomWindow