Javascript 调用每秒调用一个方法的方法
调用函数something应该每秒调用一次警报函数。这应该每秒提醒“测试”。为什么不这样做?我怎样才能做到?注意,如果可能的话,我希望保留在方法中调用方法的设计 将其引用存储在变量中,并将其用于在当前上下文之外运行的方法,就像setInterval一样 将其引用存储在变量中,并将其用于在当前上下文之外运行的方法,就像setInterval一样Javascript 调用每秒调用一个方法的方法,javascript,Javascript,调用函数something应该每秒调用一次警报函数。这应该每秒提醒“测试”。为什么不这样做?我怎样才能做到?注意,如果可能的话,我希望保留在方法中调用方法的设计 将其引用存储在变量中,并将其用于在当前上下文之外运行的方法,就像setInterval一样 将其引用存储在变量中,并将其用于在当前上下文之外运行的方法,就像setInterval一样 希望这有帮助!这里的计时器以毫秒为单位 function something(){ window.setInterval(alerting, 100
希望这有帮助!这里的计时器以毫秒为单位
function something(){
window.setInterval(alerting, 1000);
}
function alerting() {
alert('test');
}
希望这有帮助!这里的计时器以毫秒为单位
function something(){
window.setInterval(alerting, 1000);
}
function alerting() {
alert('test');
}
另一种方法是返回一个对象
function test() {
var self = {
alerting : function () {
console.log("test");
},
something : function () {
setInterval(function () {
self.alerting();
}, 1000);
}
};
return self;
}
var a = new test();
a.something();
另一种方法是返回一个对象
function test() {
var self = {
alerting : function () {
console.log("test");
},
something : function () {
setInterval(function () {
self.alerting();
}, 1000);
}
};
return self;
}
var a = new test();
a.something();
您可以使用函数创建一个对象,然后在不实例化的情况下调用它们
var testCaller = {
alerting: function() {
alert("test")
},
something: function() {
// Store current scope
var self = this;
setInterval(function() {
self.alerting();
}, 1000);
}
}
testCaller.something();
您可以使用函数创建一个对象,然后在不实例化的情况下调用它们
var testCaller = {
alerting: function() {
alert("test")
},
something: function() {
// Store current scope
var self = this;
setInterval(function() {
self.alerting();
}, 1000);
}
}
testCaller.something();
你可以试试这个代码。我已经测试过了,它是有效的。在代码中,该指针指向其他地方
function test() {
test.prototype.alerting = function() {
alert("alert test");
};
test.prototype.something = function () {
setInterval(this.alerting, 1000);
};
}
var a = new test();
a.something();
你可以试试这个代码。我已经测试过了,它是有效的。在代码中,该指针指向其他地方
function test() {
test.prototype.alerting = function() {
alert("alert test");
};
test.prototype.something = function () {
setInterval(this.alerting, 1000);
};
}
var a = new test();
a.something();
相关:这不会发生,因为这不是一个变量。它是指当前上下文所有者的关键字。在匿名函数中,如果处于严格模式,它将是全局窗口或未定义。@zerkms该链接确实有用相关:它不会发生,因为这不是一个变量。它是指当前上下文所有者的关键字。在匿名函数中,如果处于严格模式,它将是全局窗口或未定义。@zerkms该链接确实有用这似乎可行,但为什么我必须将“this”存储在变量中,为什么我的代码不起作用?@georgeirimicuc,此Inside setInterval的函数参数属于内部函数上下文,而不是外部上下文,这总是指电流context@GeorgeIrimiciuc,尤里安说的。这是一个特殊关键字,其内容由函数运行的上下文指定。setTimeout上下文是窗口,因此setTimeout触发的这个内部方法指向窗口。这似乎可行,但为什么我必须将“this”存储在变量中,为什么我的代码不起作用?@georgeirimicuc,这个内部setInterval的函数参数属于内部函数上下文,而不是外部上下文,这总是指电流context@GeorgeIrimiciuc,尤里安说的。这是一个特殊关键字,其内容由函数运行的上下文指定。setTimeout上下文是窗口,因此由setTimeout触发的这个内部方法指向窗口。