一、怎样传参?
-
在输入框失去焦点的时候,自动返回到焦点。
-
我使用"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
这篇博客探讨了JavaScript中函数参数传递的问题,特别是为何在调用`setfocus(+obj.id+)`时,实际传递的是整个对象而不是仅传递ID。作者通过示例代码展示了在输入框失去焦点时如何自动返回焦点,并解释了`setTimeout`中字符串拼接导致的对象解析行为。尽管一些在线资源指出这种方法不能传递对象,但作者的实际测试表明,通过这种方式确实可以传递并操作对象。博客还提到了代码中加号`+`的作用,即用于字符串连接。
240

被折叠的 条评论
为什么被折叠?



