创建自己的对象
实例化的过程:首先通过new关键字告知JS创建一个全新对象。然后新建的实例被赋值给一个变量,以便你可以通过引用那个变量来访问对象的新实例。不过为了做到这一点,所实例化的对象必须是一个构造函数。
第个核心对象,如object、Function、Array和String都含有构造函数。
创建构造方法
创建公有、私有、特权、静态成员
添加静态方法
<script type="text/javascript">
var obj=new Object();
obj.name='obj';
obj.alertName=function(){
alert(this.name);
}
obj.alertName();
</script>
添加公有方法
在上面我们已经接触到了一种添加公有方法的的例子,就是在我们构造函数里,function里面使用this关键字,用this加上点操作符来定义我们构造函数里的公有属性和公有方法。。
另一种方式:(两者的不同之处看下文!)
<script type="text/javascript">
function myConstructor(){
}
var myFun=new myConstructor();
myConstructor.prototype.myName='asdf';
alert(myFun.myName);
</script>
需要注意的是:
不能在myConstructor上直接调用这个方法
添加私有和特权方法
私有成员就是在构造函数中定义的变量和函数。
例如向myConstructor中添加私有成员和方法
例子如下图所示:
<script type="text/javascript">
function myConstructor(message){
this.MyMessage=message;
var myOwner=this; //私有属性
var separator='_'; //私有属性
function alertMessage(){ //私有方法
alert(myOwner.MyMessage);
}
alertMessage(); //实例化时显示信息。
//特权方法。
this.AppendToMessage=function(string){
this.MyMessage+=separator+string;
alertMessage();
}
}
var myFun=new myConstructor('asdf');
myFun.AppendToMessage('特权方法');
</script>
与私有方法不同,特权方法能够被公开访问,而且还能访问私有成员。特权方法是指在构造函数的作用域中使用this关键字定义的方法。(这也是与用prototype来指定公有方法的不同之处:因为隶属于构造函数的作用域中可以访问私有成员。)
总结: