站长论坛 - 站长交流社区- SEO交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 47|回复: 0

[JavaScript] js函数体有多个实例,会占用更多内存,这样设计的意义是什么?

[复制链接]
发表于 2018-9-13 17:22:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
例如,例子上说,下面这样的代码:[ol]
var Person=function(name){
    this.name=name;
    this.sayHello=function(){return 'Hello '+name;}
}
[/ol]复制代码Person的每个实例当中,都会有一个sayHello的函数实例。如果有多个实例的话,相当于有多个sayHello存在于内存当中。那么要写成下面这样的才是一个单实例的函数[ol]
var Person=(function(){
    var sayHello=function(){return 'Hello '+name}
    return function(name){
        this.name=name
        this.sayHello=sayHello
    }
})()
[/ol]复制代码sayHello就不会有多份。
我的问题是:
1. 第一种声明函数的方式,除了耗费更多的内存以外,到底有什么好处呢?
2. 是不是都应该写成第二种模式,或者实现层面应该避免每个具名函数都一个实例一份拷贝?
谢谢。function, return
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|易采站长站 ( 蒙ICP备14002389-1号 ) |

GMT+8, 2019-12-11 00:12

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表