js引用带来的问题

下面的例子用js举例,到其他语言,比如python也是一样。

var Example = funcion() {

this.table = {};

}

Example.prototype.getTable = function() {

return this.table;

}

var ex1 = new Example();

var table = ex1.getTable();

table.push(‘value1‘);

var table = ex1.getTable();

getTable方法返回的是一个引用,下一句,table.push(‘value1‘)就偷偷修改了ex1对象内部值

好处: 可以不用做那么多复制动作,对程序性能是有好处的。

坏处: 上面的代码已经说明了,var table值可能会被你意想不到的地方修改掉,很隐晦,你没办法控制。

再说一个引用的具体的坏处。

var list = [];

var table =  ex1.getTable();

var list.push(table);

ex1没有引用后,ex1对象就被系统回收了,但是table的却没有销毁,一直在list中,如果list忘记删除table,那就是一个潜在的内存泄露。

时间: 2025-01-18 05:28:22

js引用带来的问题的相关文章

js引用jquery问题

jquery本身就是一个JavaScript函数库,所以可以直接在js文件中写jquery代码. 但需要注意:jquery的使用需要引用官方的jquery.js文件. 关键:独立的js文件不需要引用任何jquery.js文件,只需要在相应的html网页中引用jquery.js和.js文件,jquery文件引用必须在.js文件之前.如下图: html文件: <script src="js/jquery-1.12.4.js"></script> //引用jquery

js引用后界面无效

接触到了一个新的系统,根据用户的需求,加上视频的滚动条来实现根据滚动截图的效果,在查找一番资料后,通过简单的比较,最后选择使用EasyUI的slider滚动条来实现这个功能,把EasyUI的demo下载下来后,把domo的网页copy到项目中,并引入对应的css和js,一切准备就绪后,运行页面,发现页面中的滚动条中没有滚动块, 并且上传视频的功能也失效了,我没有改动任何其他功能的代码,但是就出现这个的问题,这究竟是什么原因呢?苦于一时无法找到解决问题的办法,简单备份了一下,使用svn还原了一下最

JS 引用

var arr1=[1,2,3,4]; var arr2=arr1; arr2.push(5); console.log(arr1);//和arr2一样 console.log(arr1==arr2);//true console.log(arr1===arr2);//true function Cat(name){ this.name=name; } var p1=new Cat('tom'); var p2=new Cat('tom'); console.log(p1==p2);//fals

JS引用路劲为什么在前面加上两个斜杠

原文:JS引用路劲为什么在前面加上两个斜杠 //表示同协议,一般现在用在https跨域名地址情况下.比如第三方统计代码的引入,用//就不用很麻烦地区分https还是http,也不用担心https下降到http出问题 原文地址:https://www.cnblogs.com/lonelyxmas/p/8778420.html

使用node爬虫,爬取指定排名网站的JS引用库

前期准备 本爬虫将从网站爬取排名前几的网站,具体前几名可以具体设置,并分别爬取他们的主页,检查是否引用特定库. github地址 所用到的node主要模块 express 不用多说 request http模块 cheerio 运行在服务器端的jQuery node-inspector node调试模块 node-dev 修改文件后自动重启app 关于调试Node 在任意一个文件夹,执行node-inspector,通过打开特定页面,在页面上进行调试,然后运行app,使用node-dev app

.NET解决JS引用 全局污染等问题

在需要引用的ASPX页面上加上这句话 <!--#include file="/js/inc.html"--> 创建一个HTML页面,结构如下 <script src="/js/ArrayList.js"></script> <script src="/js/main.js"></script> 通过include引用HTML页面,HTML页面来引用JS文件来控制JS文件的引用. 定义JS

C# ASP JS引用路径不正确导致的错误

假设JS包放在根目录下的Scripts文件夹下 当前页的路径在另一个文件夹下,那么他引用JS应该:<script src="../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> 也不要写成<script src="~/Scripts/jquery-1.4.1.min.js" type="text/javascript"&g

JS引用另外JS文件的顺序问题。

1.在a.js中可以引用b.js文件,这样就可以在网页中只引用a.js文件,从而可以使用a.js和b.js文件中的所有方法. 引用格式如下:document.write('<script type="text/javascript" src="js/jquery-min.js"></script>'); 2.这样引用以后发现一个问题,即b.js文件中的方法实际是在页面全部加载完成后才能使用. 例如,a.js中引用的是jquery.js文件,如

SVG.js 引用获取整理

一.SVG.get() 根据id获取元素 var draw = SVG('svg1').size(300, 300); var circle = draw.circle(50); circle.fill('red').move(10, 10); //添加类 circle.addClass('circle'); //设置ID circle.id('circle'); //SVG.get() 获取Element对象 var circle2 = SVG.get('circle'); console.i