测试如下:
<script type="text/javascript"> function $id(elem){return document.getElementById(elem);} var my_select=$id("my_show_select"); var my_textarea=$id("my_show_textarea"); var my_button=$id("my_show_button"); my_select.onchange=function(){ var value=this.value; var array=[]; switch(value){ case '1': array.push('var a=b=[1,2]'); array.push('a.push(3)'); array.push("alert(a.length+' : '+b.length)"); break; case '2': array.push("var a=b=new Object()"); array.push("a.show=function(){alert('a: I am a')};"); array.push("b.show=function(){alert('b: I am b')}"); array.push("a.show(); b.show()"); array.push("alert('事实上我调用了两个不同函数')"); break; case '3': array.push("var a=function(){alert('a说:函数本身并不具有相互引用特性,虽然他也是Function的实例');}"); array.push("var c=new a();"); array.push("var b=c;"); array.push("b.show=function(){alert('b: I am b');}"); array.push("c.show=function(){alert('c: I am c');}"); array.push("b.show();c.show()"); array.push("alert('事实上我调用了两个不同函数')"); break; case '4': array.push("var a=[1,2]"); array.push("var b=function(arg){\nvar c=arg;\nc.push(3);\nalert(c.length);}"); array.push("b(a);"); array.push("alert('事实上参数a在函数b中被修改了')"); } my_textarea.value=array.join(";\n"); }; my_button.onclick=function(){ eval(my_textarea.value); }; </script>
关于对节点对象操作产生的影响:
由于是函数是按值传递,所以在插入节点时,引用的是节点本身,而不是它的一个克隆,所以节点被转移了
Yes!Sun基于PHP+MYSQL技术,体积小巧、应用灵活、功能强大,是一款为企业网站量身打造的WEB系统。其创新的设计理念,为企业网的开发设计及使用带来了全新的体验:支持前沿技术:动态缓存、伪静态、静态生成、友好URL、SEO设置等提升网站性能、用户体验、搜索引擎友好度的技术均为Yes!Sun所支持。易于二次开发:采用独创的平台化理念,按需定制项目中的各种元素,如:产品属性、产品相册、新闻列表
如:










