87,955
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
<html>
<head>
<script>
function model(){
this.a=1;
this.b=2;
}
function test(a){
alert(a);
}
</script>
</head>
<body>
<script>
var a=new model();
document.write('<button onclick="test('+a+')">aaa</button>');
//test(a);
</script>
</body>
</html>
'<button onclick="test('+a+')">aaa</button>'
因为上面的写法,a会被转成字符串,不会执行。
你可以这么写:
'<button onclick="test(window.a)">aaa</button>'