JavaScript实现类的private、public
来源:互联网 发布:淘宝a店是什么店 编辑:程序博客网 时间:2024/05/26 02:53
定义Js中的类,实际上用的是function
,这个语法其实是用来定义函数的。不同于定义函数的是,我们可以在function
中通过this.xxx
的方式来定义属性和方法。
this.xxx
只能定义公有属性和方法,那私有属性和方法怎么办呢?这个可以用到js闭包的知识来解决
对象可以由初始化对象的方法 -- 构造函数产生。构造函数提供在其他编程语言中类提供的特性,包括静态变量和方法。
Public
对象的成员都是public成员。任何对象都可以访问,修改,删除这些成员或添加新成员。主要有两种方式来在一个新对象里放置成员:
在构造函数里
这种技术通常用来初始化public实例变量。构造函数的“this”变量用来给对象添加成员。
functin Container(param) { this.member = param; }这样,如果我们构造一个新对象var myContainer = new Container('abc'),则myContainer.member为'abc'。
在prototype里
这种技术通常用来添加public方法。当寻找一个成员并且它不在对象本身里时,则从对象的构造函数的prototype成员里找。
prototype机制用来做继承。为了添加一个方法到构造函数创建的所有对象里,只需添加到构造函数的prototype:
Container.prototype.stamp = function (string) { return this.member + string; }这样,我们可以调用该方法myContainer.stamp('def'),结果为'abcdef'。
Private
private成员由构造函数产生。普通的var变量和构造函数的参数都称为private成员。
function Container(param) { this.member = param; var secret = 3; var that = this; }
该构造函数创建了3个private实例变量: param,secret和that。它们被添加到对象中,但是不能被外部访问,也不能被该对象自己的 public方法访问。它们只能由private方法访问。private方法是构造函数的内部方法。
function People () { this.name = "Yorhom"; var age = 16; this.getName = function () { return this.name }; this.getAge = function () { return age; };}var yorhom = new People();// undefinedalert(yorhom.age);// 16alert(yorhom.getAge())
例:编写js的类,使其拥有public和private类型的属性和方法
function Person(_name,_age,_sex,_salary){ //public this.name = _name; this.age = _age; //privare var sex = _sex; var salary = _salary; //public method this.getName = function(){ return this.name; } this.getAge = function(){ return this.age; } //private methd function getSex(){ return sex; } function getSalary(){ return salary; } this.display = function(){ document.write(this.getName() + "---" + this.getAge() + "---" + getSex() + "----" + getSalary()); } } var smirk = new Person("zy","21","f","5000"); smirk.display();
0 0
- JavaScript实现类的private、public
- JavaScript实现类的private、protected、public、static以及继承
- JavaScript实现类的private、protected、public、static以及继承
- JavaScript知识点之“private&public”
- 区别C++类的public,private,protected
- js 类的private public属性
- PHP 类的private protected public 详解
- javascript里函数的访问权限类似private public 问题
- 菜鸟学习c++—实现系统权限管理功能(类的public和private应用)
- !!scala private,private[this],public的比较
- Public与Private的区别
- private,protected,public的区别
- public,private,protected的区别
- Public与Private的区别
- public与 private的区别
- public,private,protected的区别
- public 和private的对比
- protected,public,private 的区别
- Can't use Subversion command line client: svn Probably the path to Subversion executable is wrong. F
- Dockerfile的书写规则和指令的使用方法
- Appium 测试,实现上下、左右滑动页面【Android,iOS 已验证】
- 数据结构——八大排序算法理解
- python split() join()
- JavaScript实现类的private、public
- Spring MVC高级配置
- eclipse中Tomcat启动之后访问不了
- 堆排序
- cogs 728. [网络流24题] 最小路径覆盖问题
- sys.argv用法
- IntelliJ Idea 常用快捷键列表
- Cloudera Manager、CDH零基础入门、线路指导
- 代码注释:机器学习实战第7章 利用AdaBoost元算法提高分类性能