如何在Javascript中将对象作为参数传递
Posted
技术标签:
【中文标题】如何在Javascript中将对象作为参数传递【英文标题】:How to pass Object as a parameter in Javascript 【发布时间】:2013-04-09 13:53:13 【问题描述】:我想在函数中传递对象。这是我的代码
var hyperLinkObj = new Object();
hyperLinkObj.path="abc";
hyperLinkObj.text="abctext";
'<li><a href="#" onclick="onItemClick(hyperLinkObj)">'+description+'</a></li>'
在这里我正在创建名为“hyperLinkObj”的对象现在我正在创建“li”标签并将超链接放入 li 现在当我检查时我得到类似
'<li><a href="#" onclick="onItemClick([object Object])">'+description+'</a></li>'
那么我怎样才能传递 hyperLinkObject ,就像在 onItemClick 中一样,我在这个 Object 上做了很多事情。
看看其实我想做这样的事情。
1] 有一个 Object 有很多 Category 所以想循环一下。 2] 然后在每个类别项目上单击想要使用 hyperLinkObj 调用 OnItemClcik 3] 然后点击 Hyperlink ,想要执行获取 Hyperlink.path 之类的操作并显示面包屑。 4] 最后我使用的是 Extjs 所以Ext.Panel.update("李文");
可能我没有提到 ExtJs.update.. 它没有按照你的建议工作..
你能解释一下我怎样才能做到这一点吗?
【问题讨论】:
与单击的列表项相关的对象应该引用什么?var hyperLinkObj = path: "abc", text: "abctext" ;
对象的首选语法。
hyperLinkObj 是在哪里创建的?全球范围?你能在 onItemClick 函数中展示你打算如何使用它吗?
【参考方案1】:
将hyperLinkObj
放在全局范围内,在onclick中引用。
hyperLinkObj = new Object();
hyperLinkObj.path="abc";
hyperLinkObj.text="abctext";
Ext.Panel.update('<li><a href="#" onclick=\'onItemClick(path:"'+hyperLinkObj.path+'",text:"'+hyperLinkObj.text+'")\'>'+description+'</a></li>')
[object Object]
是Object()
的toString()
,不包含详细信息。
【讨论】:
我不能使用全局对象,因为它会在循环中。我已经解释了上面的场景【参考方案2】:为复杂的点击功能使用绑定事件:
document.getElementById('anchorID').onclick=function()/* some code */
这对你来说会更容易。 看看这个小提琴: http://jsfiddle.net/anurag/amedr/
【讨论】:
不知道:/但如果您认为这是一个好的答案,请投票。 嗯...我不会为了取消他们的投票而投票。不过,我也不认为您的答案很好,因为它在某种意义上还不够完整,无法供张贴者使用,我只支持好的完整答案。我主要只是想知道为什么反对者认为它不好,因为你的答案背后的想法是正确的。以上是关于如何在Javascript中将对象作为参数传递的主要内容,如果未能解决你的问题,请参考以下文章