通常,在setInterval中引用“ this”时,我会分配一个替代的“ self”引用。是否可以在原型方法的上下文中完成类似的任务?以下代码错误。
function Foo() {}
Foo.prototype = {
bar: function () {
this.baz();
},
baz: function () {
this.draw();
requestAnimFrame(this.baz);
}
};
与Python之类的语言不同,Javascript方法忘记了将其提取并传递到其他地方后才使用的方法。你可以
这样,访问baz
属性并调用它是同时发生的,这是this
在方法调用中正确设置的必要条件。
您将需要this
将外部函数中的from 保存到一个辅助变量中,因为内部函数将引用另一个this
对象。
var that = this;
setInterval(function(){
return that.baz();
}, 1000);
在实现箭头功能功能的Javascript实现中,可以通过使用fatarrow语法以更简洁的方式编写上述解决方案:
setInterval( () => this.baz(), 1000 );
粗箭头匿名函数保留了this
周围函数的,因此无需使用该varthat=this
技巧。要看到,如果你可以使用此功能,请咨询兼容性表像这一个。
最后一种选择是使用诸如Function.prototype.bind之类的函数或您喜欢的Javascript库中的等效函数。
setInterval( this.baz.bind(this), 1000 );
//dojo toolkit example:
setInterval( dojo.hitch(this, 'baz'), 100);
由于 JavaScript 是异步的,可以使用 setTimeout 和 setInterval 来计划执行函数。 注意: 定时处理不是 ECMAScript 的标准,它们在 DOM (文档对象模型) 被实现。 function foo() {} var id = setTimeout(foo, 1000); // 返回一个大于零的数字 当 setTimeout 被调用时,它会返回一个 ID 标
问题内容: 据我所知,这两段JavaScript的行为方式相同: 选项A: 选项B: 使用setTimeout和setInterval之间有什么区别? 问题答案: 他们本质上试图做同样的事情,但是这种方法比该方法更加准确,因为要等待1000ms,然后运行该函数,然后设置另一个超时。因此,等待时间实际上超过了1000毫秒(如果函数执行时间较长,则等待时间会更长)。 尽管有人可能会认为将执行完全相同每
本文向大家介绍用setTimeout来实现setInterval?相关面试题,主要包含被问及用setTimeout来实现setInterval?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: (1)用setTimeout()方法来模拟setInterval()与setInterval()之间的什么区别? 首先来看setInterval的缺陷,使用setInterval()创建的定时器确保了
在这部分内容的第一章中,我们提到了设置原型的现代方法。 __proto__ 被认为是过时且不推荐使用的(deprecated),这里的不推荐使用是指 JavaScript 规范中规定,proto 必须仅在浏览器环境下才能得到支持。 现代的方法有: Object.create(proto, [descriptors]) —— 利用给定的 proto 作为 [[Prototype]] 和可选的属性描述
你可能会觉得只读属性是只读的所以调用者不能修改它。不幸的是,这并不总是奏效的方法。如果你的属性返回引用类型,调用者可以访问任何 public 的对象成员,包括那些能修改属性状态。例如: public class MyBusinessObject { // Read Only property providing access to a // private data membe
问题内容: 之间的主要区别是什么 setInterval 和 setTimeout 在JavaScript中? 问题答案: 超时后运行一次代码/函数。 以一定的间隔运行代码/函数,并在它们之间超时。 例: