setTimeout的问题

来源:8-17 编程练习

丨浅笑

2017-02-16 11:39

setTimeout("openWeb()",1000);

function openWeb(){

    window.open("http://www.baidu.com") ;

和 

 setTimeout(window.open("http://www.baidu.com"),1000);

的区别是什么啊? 

为什么前者延时1秒跳转,而后者直接就跳转了?

写回答 关注

5回答

  • 不浪漫
    2017-02-16 17:53:38
    已采纳

    setTimeout()第一个参数是个函数。第二个参数是设置延时的时间。你的第一种方法是对的。第二种完全就错了。 setTimeout(window.open("http://www.baidu.com"),1000);这是个错误的写法。更改成这样:setTimeout(function() {window.open('http://www.baidu.com')}, 3000);这才对。

    丨浅笑

    非常感谢!

    2017-02-16 19:46:10

    共 4 条回复 >

  • 不浪漫
    2017-02-16 19:22:16

    我刚试了一下
    setTimeout("window.open('http://www.baidu.com')}", 3000);
    这样写也可以。

    你这个还是有问题的。有没有发现你少了点什么


    丨浅笑 回复不浪漫

    哦,多了个大括号,复制你的代码,忘记删后面的了,哈哈

    2017-02-16 19:47:25

    共 3 条回复 >

  • 南山来也
    2017-02-16 17:43:44

    setTimeout中的函数应该是指定一个已存在的函数或直接声明一个新的函数如:function(...){},你的那种写法是直接告诉解释器执行函数,这是我的理解,希望对你有用。

  • 南山来也
    2017-02-16 12:47:29

    后者的写法会立即执行函数

    丨浅笑

    我知道会立即执行啊,我问的是为什么啊T T

    2017-02-16 16:57:30

    共 1 条回复 >

  • 麦稻香田
    2017-02-16 11:58:27

    一般用第一种方法

    丨浅笑

    是说第二种写法是错的?

    2017-02-16 17:06:51

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468782 学习 · 22507 问题

查看课程

相似问题