js闭包
作者:ole3021
链接:https://www.zhihu.com/question/40338254/answer/86365070
来源:知乎
在JS中创建一个User的新实例的时候使用下面的方法。
不使用new User() 来创建是有目的这么做的
1. User是一个方法,不是一个可以实例化的“类”。
2. 使用new 方法会消耗更多的资源。
链接:https://www.zhihu.com/question/40338254/answer/86365070
来源:知乎
在说到JS的变量和方法管理通过闭包(闭包 - JavaScript)来实现,而闭包在JS中最常用的方法是模块(Modules),通过模块来定义私有的变量和方法(模块通过共有的api来提供外部访问)。
举个 栗子:function User(){
var username, password;
function doLogin(user,pw) {
username = user;
password = pw;
// do the rest of the login work
}
var publicAPI = {
login: doLogin
};
return publicAPI;
}
var admin = User();
admin.login("admin", "password");
这样的好处是 User 作为外部的一个作用域保留了变量(username 和 password)以及方法(doLogin()),这里的变量和方法都是私有的方法,不能从外部访问到。
调用User()方法 就能够获得一个新的User实例,这个新的实力和新的作用域(包含了User的内部属性和方法)
***不使用new User() 来创建是有目的这么做的
1. User是一个方法,不是一个可以实例化的“类”。
2. 使用new 方法会消耗更多的资源。