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;
}
}