JavaScript系列-13 JS中的自定义类 和 prototype属性的应用

javaScript系列



一、在JS当中如何定义类?怎么new对象?

1.1 语法格式

	定义类的语法:
			第一种方式:
				function 类名(形参){
		
				}
			第二种方式:
				类名 = function(形参){
								
				}
			
	创建对象的语法:
			new 构造方法名(实参); 

1.2 举例

定义类的语法和定义函数的语法相同,但是不同的调用方法会决定它是函数还是类

	//定义类
	function name(){
			   
	}
		   
	// 把name当做一个普通的函数来调用.
	name();
		   
	// 这种方式就表示把name当做一个类来创建对象.
	var obj = new name(); 
	

二、构造方法和函数的定义

2.1概述

JS中的类的定义,同时又是一个构造函数的定义 , 在JS中类的定义和构造函数的定义是放在一起来完成的


2.2举例


	function people(a, b){ // a b是形参,属于局部变量.
		 // 声明属性 (this表示当前对象)
		 // people类中有两个属性:name/age
		 this.name = a;
		 this.age = b;
	}
	
	// 创建对象
	var u = new people("zhangsan", 30);
	 
	// 访问对象的属性
	alert(u.name);
	alert(u.age);

2.3函数的定义


	function people(a, b){ // a b是形参,属于局部变量.
		 // 声明属性 (this表示当前对象)
		 // people类中有两个属性:name/age
		 this.name = a;
		 this.age = b;

		 // 定义函数
		 this.getAge = function(){
			 return this.age;
		}
	}
	
	// 创建对象
	var u = new people("zhangsan", 30);
	 
	// 调用方法
	alert(u.getAge);
	


三、 prototype属性

prototype属性:作用是给类动态的扩展属性和函数。

3.1 语法格式

	类名.prototype.函数名   =   function (形参){
	
			}

3.2 举例

<script type="text/javascript">
   		//定义了一个类
		function people(a,b){
			//有两个属性:姓名和年龄。
			this.name = a;
			this.age = b;
		}
		
		//通过prototype这个属性来给类动态扩展及函数
		people.prototype.getAgt = function(){
			alert(this.age);
		}
			
		//创建对象
		var u = new people("zhangsan",14);
		
		//调用自己动态添加的方法
		u.getAgt();

    </script>


3.3 拓展

既然Object类型是所有类型的超类,那么任何类型,默认继承Object。 (比如String等)

<script type="text/javascript">
		// 给String扩展一个函数
   		String.prototype.s1 = function(){
			   alert("这是给String类型扩展的一个函数,叫做s1");
		}
		//调用
		"abc".s1();
		   
</script>


同理 Number、String、Boolean都可以通过这样的方式去进行动态的扩展函数。


总结

1、在JS当中定义类 和new对象。

2、在JS中类的定义和构造函数的定义是放在一起来完成的。

3、prototype属性:作用是给类动态的扩展属性和函数。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值