我尝试了不同的方法,但是我似乎确实在寻找一些显而易见的东西。尝试使用函数(方法)返回的值在对象内部,然后在同一对象内的setTimeout方法中使用该值。

这是html:

<h1>3000</h1>


javascript(在这种情况下为jQuery):

    var foo = {
        getValue: function() {
            var h1Text = $('h1').text();
            h1Text = parseInt(h1Text);
            return h1Text;
        },
        useValue: function() {
            var time = this.getValue();
            var alertIt = alert('Hello');
            setTimeout(alertIt,time);
        }
    };
    foo.useValue();
    // log shows correct value
    console.log(foo.getValue());
    // returns a number
    console.log(typeof(foo.getValue()));


警报确实会显示,但是会在加载时而不是使用这3秒钟。
它确实记录了正确的值,并且还说这是一个数字,所以我真的不确定自己在做什么错。任何帮助表示赞赏。谢谢

最佳答案

useValue()中,您调用alert('Hello'),因此它会立即执行并将结果存储在alertIt变量中。您应该将其放在这样的函数中,因为setTimeout希望将函数作为第一个参数:

var alertIt = function() {
    alert('Hello');
}

setTimeout(alertIt,time);

10-06 12:35