javascript同一段函数代码生成不同内存副本的问题?iframe咋用我需要“主页面”里嵌入一个“副页面”

发表时间:2018-01-10 00:48:02 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《咋给电脑装水冷?YINER银尔的电脑用的是什么样显卡驱动》相关知识。本篇中小编将再为您讲解标题javascript同一段函数代码生成不同内存副本的问题?iframe咋用我需要“主页面”里嵌入一个“副页面”。

var obj={};n ['width','height'].forEach(function(item,index){n obj[item]=function(){n console.log(item);n }n });n console.log(obj.width==obj.height);n控制台打印false,说明obj.width和obj.height不是①个函数副本,①样的代码块,内存中有两个内存副本,js为什么没有做内存优化呢?

更为奇怪的是,这种写法是zepto.js中大量使用的写法,例如:

['width', 'height'].forEach(function (dimension) {n var dimensionProperty =n dimension.replace(/./, function (m) {n return m[0].toUpperCase()n })nn $.fn[dimension] = function (value) {n var offset, el = this[0]n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] :n isDocument(el) ? el.documentElement['scroll' + dimensionProperty] :n (offset = this.offset()) offset[dimension]n else return this.each(function (idx) {n el = $(this)n el.css(dimension, funcArg(this, value, idx, el[dimension]()))n })n }n })n是这种写法有问题,会造成同样的代码块生成不同副本占用过多内存资源,还是我分析出了问题呢?来个高手帮我分析下吧。

谢邀。

这种情况跟手动定义两次没区别。

obj.width=function(){ console.log(item);}obj.height=function(){ console.log(item);}计算机如何知道你这两个function是①样的呢?中间需要①个识别的过程,诸如C、Java①类的编译语言可以在编译的时候做优化,能达到合并代码块的效果。而js是解释性语言,是在浏览器中执行的,没有这样①个预编译的过程。js中所谓的预编译是①个简单的检查声明分配内存的过程,并不是像C++/java那样的强大的编译。

如果题主想要优化性能,可以考虑使用原型来共享内存。或者在使用完该函数之后手动delete,这样内存回收机制就会将这部分内存回收。

但是,题主的程序真的到了需要这种性能优化的程度了吗?建议楼主将重心放在DOM的优化上,①个DOM操作的浪费,抵得上几千个这种小内存的损耗。

display;iframe id=scripta href=javascript;

text/javascript

$( id=mainbtn#subiframe)[⓪], $(触发子页的按钮的点击事件

});

/#mainbtn).click(function(){ // //链接script type=/a>,无解

iframeindex②.html style=/

主页按钮点击

$(#subbtn.click().contentWindow.document)如果父子页面不跨域,按如下方式解决;如果跨域;subiframe src="

编后语:关于《javascript同一段函数代码生成不同内存副本的问题?iframe咋用我需要“主页面”里嵌入一个“副页面”》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《帮忙看下电脑配置可用么?威刚内存条DDR3 1600颜色》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题