js中setTimeout给调用的函数传递对象参数

一、怎样传参?

  • 在输入框失去焦点的时候,自动返回到焦点。

  • 我使用"setfocus("+obj.id+")",本来只是想传递一个id过去,但是实际上,setfocus中收到的已经是这个对象了。

    <!DOCTYPE html>
    <html>
    <script type="text/javascript">
    function setfocus(obj) 
    {
        obj.focus();
    }
    function doOnBlur(obj)
    {
        setTimeout("setfocus("+obj.id+")",5);
    }
    </script>
    <body>
    
    <h2>我的第一段 JavaScript</h2>
    
    <button type="button"
    onclick="document.getElementById('demo').innerHTML = Date()">
    点击这里来显示日期和时间
    </button>
    <input id="test" onBlur="doOnBlur(this)"/>
    <p id="demo"></p>
    
    </body>
    </html>
    
  • 加了alert之后,如图:

    在这里插入图片描述

二、问题

  • 为什么传参要加“+”加号?

    应该是某种格式吧。有懂的还希望指明一下。

  • 为什么要传递的是id,但是被解析成整个对象?

    网上都说这种方法不能传递对象

在这里插入图片描述

但是我自己测试使用上面的方法是可以传递对象的。传ID就行。

https://www.jb51.net/article/40524.htm

这里有这样的说明。

在这里插入图片描述

我亲自复制这段代码,发现确实不能打印obj。但是如果输入的是obj.id,就可以正常循环打印。

这样写不行:

在这里插入图片描述

但是这样写可以:

在这里插入图片描述

三、参考

  • 示例代码。
  • https://www.jb51.net/article/40524.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值