javascript学习4——javascript面向对象(中)

              创建自己的对象

        实例化的过程:首先通过new关键字告知JS创建一个全新对象。然后新建的实例被赋值给一个变量,以便你可以通过引用那个变量来访问对象的新实例。不过为了做到这一点,所实例化的对象必须是一个构造函数

        第个核心对象,如object、Function、Array和String都含有构造函数。

              创建构造方法

         javascript学习4——javascript面向对象(中)_第1张图片

javascript学习4——javascript面向对象(中)_第2张图片

javascript学习4——javascript面向对象(中)_第3张图片

 javascript学习4——javascript面向对象(中)_第4张图片

 

              创建公有、私有、特权、静态成员   

       添加静态方法

<script type="text/javascript">
	var obj=new Object();
	obj.name='obj';
	obj.alertName=function(){
			alert(this.name);
		}
	obj.alertName();
</script>


            javascript学习4——javascript面向对象(中)_第5张图片

          

 

 

                 

           添加公有方法

在上面我们已经接触到了一种添加公有方法的的例子,就是在我们构造函数里,function里面使用this关键字,用this加上点操作符来定义我们构造函数里的公有属性和公有方法。。

         另一种方式:(两者的不同之处看下文!)

javascript学习4——javascript面向对象(中)_第6张图片

 

<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来指定公有方法的不同之处:因为隶属于构造函数的作用域中可以访问私有成员。)

 

总结:

 

 

你可能感兴趣的:(javascript学习4——javascript面向对象(中))