es 5中可以用立即函数来表示,表示过程有点儿像js模块化。
举例:
var foo=(function module(id){
var name="liao";
var sex;
var id=id;
function getname(){
return name;
}
function setname(name){
this.name=name;
}
return {
name:name,
setname:setname
}
})(123);
foo.setname("liaoliao");
console.log(foo.name);
console.log(foo.id);
这里就是在函数内部定义的为私有变量不可访问或修改,而通过return暴露出来的才是可以调用的公用方法和变量
话说在es 6的class 提案中有
class student{
#x;
constructor(x,y){
this.#x=x;
this.y=y;
}
}