All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
Php高手带路--问题汇总解答_[PHP教程]
VB.NET使用OracleTransaction处理事务_[Asp.Net教程]
C#随机生成汉字验证码代码_[Asp.Net教程]
ASP.NET,中的上传控件使用_[Asp.Net教程]
菜鸟到高手:SQL开发进阶常用精妙语句_[SQL,Server教程]
C#基础全接触_[Asp.Net教程]
sql,server的几个函数要记录_[SQL,Server教程]
C#,类型基础_[Asp.Net教程]
SQL数据库高级教程:学习 SQL Alias(别名)_[SQL Server教程]
delphi获取Windows目录
Reading number is top 10 pictures
Original author said, this is the Hengyang people
真正的国产-非模拍 贵在是真实2
9.3阅兵全景图1-抗战老兵和英雄连队梯队
做运动的校花1
我国房地产真相
西游日记4
接财神,大吉大利,财源滚滚来
A cat have life principles
Absolutely shocked. National geographic 50 animal photographys10
The hot big eye big breast beauty3
Download software ranking
致我们终将逝去的青春
艳兽都市
asp.netWeb服务器高级编程
The cock of the Grosvenor LTD handsome
Tram sex maniac 2 (H) rar bag9
Boxer's Top ten classic battle10
Unix video tutorial13
网络管理员第三版
Detective task-the top secret prostitution files
Wild things 2
归海一刀 published in(发表于) 2014/3/16 2:51:30 Edit(编辑)
AJAX中JavaScript类的三种成员_[AJAX教程]

AJAX中JavaScript类的三种成员_[AJAX教程]

AJAX中JavaScript类的三种成员_[AJAX教程]

实现类的公有成员

  前面定义的任何类成员都属于公有成员的范畴,该类的任何实例都对外公开这些属性和方法。

  实现类的私有成员

  私有成员即在类的内部实现中可以共享的成员,不对外公开。JavaScript中并没有特殊的机制来定义私有成员,但可以用一些技巧来实现这个功能。

  这个技巧主要是通过变量的作用域性质来实现的,在JavaScript中,一个函数内部定义的变量称为局部变量,该变量不能够被此函数外的程序所访问,却可以被函数内部定义的嵌套函数所访问。在实现私有成员的过程中,正是利用了这一性质。

  前面提到,在类的构造函数中可以为类添加成员,通过这种方式定义的类成员,实际上共享了在构造函数内部定义的局部变量,这些变量就可以看作类的私有成员,例如:


<script language="JavaScript" type="text/javascript">
<!--
function class1(){
 var pp=" this is a private property"; //私有属性成员pp
 function pm(){ //私有方法成员pm,显示pp的值
  alert(pp);
 }
 this.method1=function(){
  //在公有成员中改变私有属性的值
  pp="pp has been changed";
 }
 this.method2=function(){
  pm(); //在公有成员中调用私有方法
 }
}
var obj1=new class1();
obj1.method1(); //调用公有方法method1
obj1.method2(); //调用公有方法method2
//-->
</script>

  这样,就实现了私有属性pp和私有方法pm。运行完class1以后,尽管看上去pp和pm这些局部变量应该随即消失,但实际上因为class1是通过new来运行的,它所属的对象还没消失,所以仍然可以通过公开成员来对它们进行操作。

  注意:这些局部变量(私有成员),被所有在构造函数中定义的公有方法所共享,而且仅被在构造函数中定义的公有方法所共享。这意味着,在prototype中定义的类成员将不能访问在构造体中定义的局部变量(私有成员)。

  要使用私有成员,是以牺牲代码可读性为代价的。而且这种实现更多的是一种JavaScript技巧,因为它并不是语言本身具有的机制。但这种利用变量作用域性质的技巧,却是值得借鉴的。

  实现静态成员

  静态成员属于一个类的成员,它可以通过“类名.静态成员名”的方式访问。在JavaScript中,可以给一个函数对象直接添加成员来实现静态成员,因为函数也是一个对象,所以对象的相关操作,对函数同样适用。例如:


function class1(){//构造函数
}
//静态属性
class1.staticProperty="sample";
//静态方法
class1.staticMethod=function(){
 alert(class1.staticProperty);
}
//调用静态方法
class1.staticMethod();

  通过上面的代码,就为类class1添加了一个静态属性和静态方法,并且在静态方法中引用了该类的静态属性。

  如果要给每个函数对象都添加通用的静态方法,还可以通过函数对象所对应的类Function来实现,例如:


//给类Function添加原型方法:show ArgsCount
Function.prototype.showArgsCount=function(){
 alert(this.length); //显示函数定义的形参的个数
}
function class1(a){
 //定义一个类
}
//调用通过Function的prototype定义的类的静态方法showArgsCount
class1. showArgsCount ();
  由此可见,通过Function的prototype原型对象,可以给任何函数都加上通用的静态成员,这在实际开发中可以起到很大的作用,比如在著名的prototype-1.3.1.js框架中,就给所有的函数定义了以下两个方法:


//将函数作为一个对象的方法运行
Function.prototype.bind = function(object) {
 var __method = this;
 return function() {
  __method.apply(object, arguments);
 }
}
//将函数作为事件监听器
Function.prototype.bindAsEventListener = function(object) {
 var __method = this;
 return function(event) {
  __method.call(object, event || window.event);
 }
}

  这两个方法在prototype-1.3.1框架中起了很大的作用,具体含义及用法将在后面章节介绍。
来源:CSDN





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.