在函数内通过this指针引用的变量或者方法都会成为类的成员
在javascript中,function本身的定义就是类的构造函数
1.当解释器遇到new操作符时便创建一个空对象
2.开始运行函数,并将其中的this指针都指向这个新建的对象
3.因为当给对象不存在的属性赋值时,解释器就会为对象创建该属性,这样函数执行就是初始化这个对象的过程,即实现构造函数的作用。
4.当函数执行完后,new操行符就返回初始化后的对象。
使用prototype(所对应类的实例的原型)对象定义类成员
1.创建一个新的对象,并让this指针指向它。
2.将函数的prototype对象的所有成员都赋给这个新对象。
3.执行函数体,对这个对象进行初始化操作。
4.返回(1)中创建的对象。
prototype对象初始化过程发生在函数体(构造器)执行之前,所以可以在函数体内部调用prototype中定义的属性和方法。
原型对象的定义必须在创建类实例的语句之前,否则它将不会起作用。
在javascript中每个属性和方法都是独立的,它们通过this指针联系在一个对象上。
实现类的私有成员
在javascript中,一个函数内部定义的变量(局部变量),该变量不能够被此函数外的程序所访问,却可以被函数内部定义的嵌套所访问。
这些局部变量(私有成员),被所有在构造函数中定义的公有方法所共享,而且仅被在构造函数中定义的公有方法所公享。这意味着,在prototype中定义的类成员将不能访问在构造体中定义的局部变量。
<script language="JavaScript" type="text/javascript">
<!--
function class1(){
var pp=" this is a private property";
function pm(){
alert(pp);
}
this.method1=function(){
pp="pp has been changed";
}
this.method2=function(){
pm();
}
}
var obj1=new class1();
obj1.method1();
obj1.method2();
-->
</script>
实现静态成员
<script language="JavaScript" type="text/javascript">
<!--
function class1(){
var pp=" this is a private property";
function pm(){
alert(pp);
}
this.method1=function(){
pp="pp has been changed";
}
this.method2=function(){
pm();
}
}
var obj1=new class1();
obj1.method1();
obj1.method2();
-->
</script>
反射机制:程序在运行时能够获得自身的信息。
for(var p in obj){
if(typeof(obj[p]=="function")){
obj[p];
}else{
alert(obj[p]);
}
}
分享到:
相关推荐
而实例则是类的一个具体实现。 我们还知道,面向对象编程有三个重要的概念 - 封装、继承和多态。 但是在JavaScript的世界中,所有的这一切特性似乎都不存在。 因为JavaScript本身不是面向对象的语言,而是基于对象...
JavaScript树\利用JavaScript实现树型结构的TreeView类JavaScript树\利用JavaScript实现树型结构的TreeView类JavaScript树\利用JavaScript实现树型结构的TreeView类JavaScript树\利用JavaScript实现树型结构的...
web期末大作业 基于HTML+CSS+JavaScript实现的生活类购物商城首页源码 web期末大作业 基于HTML+CSS+JavaScript实现的生活类购物商城首页源码 web期末大作业 基于HTML+CSS+JavaScript实现的生活类购物商城首页源码 ...
web期末大作业 基于HTML+CSS+JavaScript实现的农业类水果商城首页源码 web期末大作业 基于HTML+CSS+JavaScript实现的农业类水果商城首页源码 web期末大作业 基于HTML+CSS+JavaScript实现的农业类水果商城首页源码 ...
带注释,可运行,代码一看就懂。运行简单!希望支持 。所有者shine
javascript 实现排序分类功能, 冒泡排序, 快速排序等等
web期末大作业 基于HTML+CSS+JavaScript实现的电商类化妆品购物商城首页源码 web期末大作业 基于HTML+CSS+JavaScript实现的电商类化妆品购物商城首页源码 web期末大作业 基于HTML+CSS+JavaScript实现的电商类化妆品...
使用javascript实现类的多种方式总结
web期末大作业 基于HTML+CSS+JavaScript实现的生活类购物商城网站源码(10页) web期末大作业 基于HTML+CSS+JavaScript实现的生活类购物商城网站源码(10页) web期末大作业 基于HTML+CSS+JavaScript实现的生活类购物...
web期末大作业 基于HTML+CSS+JavaScript实现的折扣类电子商务商城源码(5页) web期末大作业 基于HTML+CSS+JavaScript实现的折扣类电子商务商城源码(5页) web期末大作业 基于HTML+CSS+JavaScript实现的折扣类电子商务...
web期末大作业 基于HTML+CSS+JavaScript实现的服装类电子商务商城源码(4页) web期末大作业 基于HTML+CSS+JavaScript实现的服装类电子商务商城源码(4页) web期末大作业 基于HTML+CSS+JavaScript实现的服装类电子商务...
javascript 集合类 LinkedList代码实现
各种js列表的实现 各种js列表的实现 各种js列表的实现 各种js列表的实现
复习内容
javascript实现无极分类,菜单内容是读取JSON格式的数据,并非写死,灵活性很强大!
《网页开发手记HITML+CSS+JavaScript》中的菜单是二级的,增加了支持三级菜单功能,第三级的定位问题困扰我很久,最后通过设置上级li的position:relative实现。小修改就可以支持四级、五级...菜单。
C#帮助类(Helper class)是一种用于封装常用功能的类。它通常包含一组静态方法,这些方法能够执行特定的任务或提供通用的功能。帮助类的目的是为了提高代码的可重用性和可维护性,避免重复编写相似的功能代码。 ...
简单的javascript程序实现网页倒计时效果。不含库,不需要调用其他文件。
文档全部内容如下: Javascript编程 类的封装 ... 笔者将以上介绍的类实现机制封装于一个js文件中,压缩后大小不到2kb。通过以上的介绍,也许读者您也可以尝试制作一个自己易用的类继承-封装机制了。 寻找有缘!