JavaScript 对象成员的可见性说明


Posted in Javascript onOctober 16, 2009

JavaScript对象构造的可见性定义可以分为以下几种:
  1,私有属性(private properties)


通过var关键字定义对象构造中变量的作用域,该变量只能在对象构造方法的作用域内被访问。如:

function VariableTest() 
{ 
var myVariable;//private 
} 
var vt = new VariableTest(); 
vt.myVariable;//这里会出现undefined异常

2,私有方法(private methods)

与私有属性类似,只能在对象构造方法作用域内被访问。如:

function MethodTest() 
{ 
var myMethod = function()//private 
{ 
alert("private method"); 
} 
this.invoke = function() 
{ 
//能够访问到myMethod 
myMehtod(); 
} 
} 
var mt = new MethodTest(); 
mt.myMethod();//错误。使用trycatch的话,可捕获“对象不支持此属性或方法”异常 
mt.invoke();

3,公共属性(public properties)


有两种定义公共属性的途径:

(1)通过this关键字来定义。如:

function PrivilegedVariable() 
{ 
this.variable = "privileged variable"; 
} 
var pv = new PrivilegedVariable(); 
pv.variable;//返回 "privileged variable"

(2)通过构造方法的原型来定义。如:

function PublicVariable(){} 
PublicVariable.prototype.variable = "public variable"; 
var pv = new PublicVariable(); 
pv.variable;//返回"public variable"

4,公共方法(public methods)

同理,有两种定义公共方法的途径。


(1)通过this关键字来定义。(2)通过构造方法的原型来定义。

这里省略。。。。。。。。。。。

5,静态属性(static properties)

直接为对象构造方法添加的属性,不能被对象实例访问,只能供构造方法自身使用。如:

function StaticVariable(){} 
StaticVariable.variable = "static variable"; 
var sv = new StaticVariable(); 
sv.variable;//返回"undefined" 
StaticVariable.prototype.variable;//返回"undefined" 
StaticVariable.variable;//返回"static variable"

6,静态方法(static methods)


直接为对象构造方法添加的方法,不能被对象实例访问,只能供构造方法自身使用。

代码省略。。。。。。。。

Javascript 相关文章推荐
Javascript 类与静态类的实现
Apr 01 Javascript
JS的replace方法介绍
Oct 20 Javascript
$.each遍历对象、数组的属性值并进行处理
Jul 18 Javascript
jQuery中die()方法用法实例
Jan 19 Javascript
jQuery实现加入购物车飞入动画效果
Mar 14 Javascript
深入解析JavaScript编程中的this关键字使用
Nov 09 Javascript
原生javascript实现解析XML文档与字符串
Mar 01 Javascript
浅析BootStrap模态框的使用(经典)
Apr 29 Javascript
javascript this详细介绍
Sep 19 Javascript
JS类的定义与使用方法深入探索
Nov 26 Javascript
vue项目开启Gzip压缩和性能优化操作
Oct 26 Javascript
vue+iview实现分页及查询功能
Nov 17 Vue.js
Javascript 圆角div的实现代码
Oct 15 #Javascript
IE Firefox 使用自定义标签的区别
Oct 15 #Javascript
JavaScript 基础知识 被自己遗忘的
Oct 15 #Javascript
javascript 操作cookies及正确使用cookies的属性
Oct 15 #Javascript
extjs 学习笔记(三) 最基本的grid
Oct 15 #Javascript
JavaScript Array扩展实现代码
Oct 14 #Javascript
JavaScript 动态创建VML的方法
Oct 14 #Javascript
You might like
php 全文搜索和替换的实现代码
2008/07/29 PHP
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
php实现的通用图片处理类
2015/03/24 PHP
thinkPHP实现将excel导入到数据库中的方法
2016/04/22 PHP
PHP判断密码强度的方法详解
2017/05/26 PHP
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
actionscript与javascript的区别
2011/05/25 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
JS重载实现方法分析
2016/12/16 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
Python实现的栈、队列、文件目录遍历操作示例
2019/05/06 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
python用opencv完成图像分割并进行目标物的提取
2020/05/25 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
css3实例教程 一款纯css3实现的发光屏幕旋转特效
2014/12/07 HTML / CSS
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
2020/04/27 HTML / CSS
MATCHESFASHION.COM美国官网:英国奢侈品零售商
2018/10/29 全球购物
英国在线泳装店:Simply Swim
2019/05/05 全球购物
什么是Assembly(程序集)
2014/09/14 面试题
远东集团网络工程师面试题
2014/10/20 面试题
甘南现象心得体会
2014/09/11 职场文书
财务人员岗位职责
2015/02/03 职场文书
如何利用Python实现一个论文降重工具
2021/07/09 Python