最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript中变量的相互引用_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:49:08
文档

JavaScript中变量的相互引用_javascript技巧

JavaScript中变量的相互引用_javascript技巧:测试如下: .my_show_textarea { width:600px; height:150px; font-family:Courier New, Courier, monospace; overflow:auto; border:1px solid #ccc; font-size:11px;} .my_show_button{ font
推荐度:
导读JavaScript中变量的相互引用_javascript技巧:测试如下: .my_show_textarea { width:600px; height:150px; font-family:Courier New, Courier, monospace; overflow:auto; border:1px solid #ccc; font-size:11px;} .my_show_button{ font


测试如下:



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); };

关于对节点对象操作产生的影响:

由于是函数是按值传递,所以在插入节点时,引用的是节点本身,而不是它的一个克隆,所以节点被转移了

如:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
最后一个是关于节点的移除的,本来以为用innerHTML=""来移除元素内容的话,在IE中会把创建的节点从内存中彻底消除,事实并非如此,而是产生了很奇怪的现象:

如:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

文档

JavaScript中变量的相互引用_javascript技巧

JavaScript中变量的相互引用_javascript技巧:测试如下: .my_show_textarea { width:600px; height:150px; font-family:Courier New, Courier, monospace; overflow:auto; border:1px solid #ccc; font-size:11px;} .my_show_button{ font
推荐度:
标签: js 调用 javascript
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top