例如,例子上说,下面这样的代码:
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. 是不是都应该写成第二种模式,或者实现层面应该避免每个具名函数都一个实例一份拷贝?
谢谢。
--
FROM 222.126.214.*