Cam*_*hez 8 javascript function
我知道像这样的模块:
function User(){
var username, password;
function doLogin(user, pw){
username = user;
password = pw;
};
var publicAPI = {
login: doLogin
};
return publicAPI;
}
Run Code Online (Sandbox Code Playgroud)
在它内部有一个闭包:doLogin并且正在记住变量的值username和password里面的变量User,这使得它成为一个"闭包".我不太明白的是,无论何时我们使用闭包,我们都在使用模块模式?或者一旦我保存User变量的功能就像var User = function(){...不是一个模块......请记住我正在学习js.
您已为Users 实现了工厂功能.
你"几乎"使用了揭示模块模式.大多数人会说需要立即调用显示模块模式.模块模式通常用于代码组织.你在这里所拥有的是一个对象工厂.
闭包由(显示)模块模式(和其他模块)使用以实现私有状态的封装.
只要定义了函数,就会创建一个闭包.它们是JavaScript的语言特性,可以更轻松地处理函数.