Javascript 调用每秒调用一个方法的方法

Javascript 调用每秒调用一个方法的方法,javascript,Javascript,调用函数something应该每秒调用一次警报函数。这应该每秒提醒“测试”。为什么不这样做?我怎样才能做到?注意,如果可能的话,我希望保留在方法中调用方法的设计 将其引用存储在变量中,并将其用于在当前上下文之外运行的方法,就像setInterval一样 将其引用存储在变量中,并将其用于在当前上下文之外运行的方法,就像setInterval一样 希望这有帮助!这里的计时器以毫秒为单位 function something(){ window.setInterval(alerting, 100

调用函数something应该每秒调用一次警报函数。这应该每秒提醒“测试”。为什么不这样做?我怎样才能做到?注意,如果可能的话,我希望保留在方法中调用方法的设计

将其引用存储在变量中,并将其用于在当前上下文之外运行的方法,就像setInterval一样

将其引用存储在变量中,并将其用于在当前上下文之外运行的方法,就像setInterval一样


希望这有帮助!这里的计时器以毫秒为单位

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触发的这个内部方法指向窗口。