java在一个类中,可以有私有和共有的成员,是通过private和public来实现的,而js没有这两个关键字,那么当需要有私有和公有的成员的时候该怎么做呢?
js可以通过new 函数名()来创建一个对象,那么可以在这个函数中定义我们需要的成员变量和方法,看如下例子
<pre name="code" class="javascript"> function Fn(){
// 定义私有变量
var privateVar = 'private var';
//定有私有函数
var privateFn = function(){
console.info(privateVar);
}
// 公有的函数和变量
return {
public_var : 'public var',
getPrivateVar : function(){
privateFn();
}
}
}
var f = new Fn();
f.getPrivateVar();// private var
console.info(f.public_var);// public var
由于函数中的声明的变量和函数只能内部使用,那么就相当于是私有的变量,而公有的属性是通过返回一个用{....}来构造的对象,该对象中的成员可以外部访问,即当new Fn()时候会返回{....}这样一个对象,由于其中定义了私有变量privateVar的get方法,那么外部便可以通过get方法来访问私有成员,这样就实现了公有和私有的成员