Chinaunix
标题:
js函数体有多个实例,会占用更多内存,这样设计的意义是什么?
[打印本页]
作者:
cdsfiui
时间:
2016-07-14 10:52
标题:
js函数体有多个实例,会占用更多内存,这样设计的意义是什么?
例如,例子上说,下面这样的代码:
var Person=function(name){
this.name=name;
this.sayHello=function(){return 'Hello '+name;}
}
复制代码
Person的每个实例当中,都会有一个sayHello的函数实例。如果有多个实例的话,相当于有多个sayHello存在于内存当中。那么要写成下面这样的才是一个单实例的函数
var Person=(function(){
var sayHello=function(){return 'Hello '+name}
return function(name){
this.name=name
this.sayHello=sayHello
}
})()
复制代码
sayHello就不会有多份。
我的问题是:
1. 第一种声明函数的方式,除了耗费更多的内存以外,到底有什么好处呢?
2. 是不是都应该写成第二种模式,或者实现层面应该避免每个具名函数都一个实例一份拷贝?
谢谢。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2