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方法来访问私有成员,这样就实现了公有和私有的成员