您的位置:首页 > Web前端 > JavaScript

Js简介3——各种方法的解析

2011-06-13 19:18 423 查看
1. 构造方法的创建

function myConstructor(a){

//某些代码

}

function对象的特别之处在于,它的实例也能作为构造方法,因此可以用来创建函数的实例。如var myObject=new myConstuctor();

注意:function myConstructor(message){

Alert(message);

this.myMessage=message;

}

Var myObj=new myConstructor(“Instantiating”);

(其中myMessage属性只在被实例化的myConstructor的实例中可用,而在myConstructor函数自身中是无效的)

2. 静态方法

var myObject=new Object();

//添加个属性

myObject.name=”jh”;

//添加个方法

myObject.alertName=function(){

alert(this.name);

}

//执行添加的方法

myObject.alertName();

上述代码也可以写成:

Var myConstructor=function(){}

myConstructor.name=’jg’;

myConstructor.alertName=function(){

alert(this.name);

}

myConstructor.alertName();

说明:静态属性与方法只存在于此处定义的一个具体的实例中。这里即是myConstructor。Name和alertName成员不能应用于新的实例中

3. 公有成员(能够使实例化的对象包含的方法叫公有方法)

添加公有方法实例:

Function myConstructor(message){

Alert(message);

this .myMessage=message;

}

//添加公有方法

myConstructor.prototype.clearMessage=function(string){

this.myMessage+=’ ‘+string;

}

说明:这样操作后将会把新方法添加到myConstructor的底层定义中,而不是添加到myConstructor实例自身。

Var myObject=new myConstructor(‘hello world’);

myObject.clearMessage();

但是不能直接在myConstructor(即定义公有方法的类上直接调用公有方法)上调用公有方法。

4. 私有成员:(就是在构造函数中定义的变量和函数)

举例:function myConstructor(message){

this .myMessage=message;

var myOwner=this;//私有属性

var separator=’_’; //私有属性

function alertMessage(){

//私有方法

alert(myOwner.message);

}

alertMessage(); //实例话时显示信息

}

5. 特权成员(能够被公开访问,而且还能访问私有成员。特权方法指在构造函数的作用域中使用this定义的方法)

例:function myConstructor(message){

this .myMessage=message;

var separator=’_’;

var myOwner=this;

//特权方法

this .appendToMessage=function(string){

this .myMessage+=separator+string;

alertMessage();

}

}

(注意特权方法appendToMessage方法可以访问myConstructor的私有成员separator)

使用

var myObj=new myConstructor(‘hello world’);

myObj.appendToMessage(‘aaa’);

各种方法总结:

私有和特权成员在函数的内部,他们会被带到函数的每个实例中,因而将占用大量的内存。

公有的原型成员是对象蓝图的一部分,适用于通过new实例话的该对象的每一个实例。但不包括此对象本身

静态成员只适用于对象的一个特殊实例
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: