面向对象的JavaScript:私有成员和公开成员

Posted 星火卓越

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的JavaScript:私有成员和公开成员相关的知识,希望对你有一定的参考价值。

在小项目中对于javascript使用,只要写几个function就行了。但在大型项目中,尤其是在开发追求 良好的用户体验的网站中,如SNS,就会 用到大量的JavaScrpt,有时JavaScript的工作量胜过了C#,这时写一堆function,就会显得很乱,杂乱无章,甚至会出现命名冲突,管理和维 护起来都很麻烦。对于这种情况我们就需要使用面向对象的思想来开发JavaScript。那我们就这样作罢:

       这节来说下JavaScript的私有成员和公开成员,虽然JavaScript没有private和public关键字,但还是那句话——作为开发人员我们要有面向对象的思想!

      其实很简单,废话少说,看了下面的代码及注释相信你就会一目了然!

 

复制代码
//声明类,就是一个方法,其实在JavaScript中,命名空间、类、成员.... 一切皆对象
MyClass =function(){
var _this=this;

//私有变量
var aa="11";

//公开变量
this.bb="22";

//私有方法
function fun1(){  
  alert(aa);
  alert(_this.bb);
}

//私有方法
var fun2=function(){
  alert(aa);
  alert(_this.bb);
}

//公开方法
this.fun3=function(){   
    alert(aa);
    alert(_this.bb);
    }
}

//测试如下:
var mc=new MyClass();
mc.aa="AA";//错误

mc.bb="BB";//正确

mc.fun1();//错误

mc.fun2();//错误

mc.fun3();//正确
复制代码

 

一言以蔽之:在类的内部

用 var 关键字声明的变量或方法是私有的;

用function 关键字声明的方法是私有的;

用this关键字声明的变量或方法是公开的。

 

以上说的都是针对于实例类而言的,而对于静态类那就更简单了,JavaScript静态类其实就是一个json对象,所以的它的所有成员都是公开的,都是对外可见的!

以上是关于面向对象的JavaScript:私有成员和公开成员的主要内容,如果未能解决你的问题,请参考以下文章

Python面向对象成员修饰符

详解Python对象属性

深入理解JavaScript模拟私有成员

面向对象结构与成员(特殊成员)及相关内置函数

PHP面向对象OOP编程

面向对象程序设计-继承与多态