es6类语法

<script>
			
			
			/*
			 * es6的类语法
			 * 其实就是用es6的语法  去写构造函数
			 * 
			 * 
			 * 
			 * 用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,
可以为其添加函数供实例访问,其它的就不清楚了,最近看了一些 JavaScript高级程序设计,终于揭开了其神秘面纱。
每个函数都有一个prototype属性,这个属性是指向一个对象的引用,这个对象称为原型对象,原型对象包含函数实例共享的方法和属性,
也就是说将函数用作构造函数调用(使用new操作符调用)的时候,新创建的对象会从原型对象上继承属性和方法。
			 * */
			
			
			
			
			/*
			 *es6 的类语法
			 * +语法:
			 * class类名{
			 * 	//原先  ess内的构造函数体
			 * constructor(){}
			 * //直接书写原型上的方法即可
			 * }
			 * +注意:必须和new 关键字连用
			 * =>不和new 关键字连用  会直接报错
			 * 
			 * 
			 * 其实就是用es6的语法  去写构造函数
			 */
			
			function Person(name,age){
			 this.name =name
			 this.age=age}
			//原型添加一个方法
			//原型上的方法目的是为了给实例使用
			Person.prototype.sayHi=function(){console.log('hello world')}
			//实际上原型上的方法和构造函数应该是一体的
			//但是分开了两个地方写   不是错  只是不好
			
			//因此es6出现了类语法
			
			//书写静态属性和方法
			Person.a=100
			Person,go=function(){console.log('跑起来')}
			
			
			var p1=new Person('jack',18)
			console.log(p1)
			console.log(p1.sayHi)
			
			//1.构造函数本质还是一个函数  可以不用new 关键字连用
		    var p2=Person('Rose',20)///没有和new ;连用
			console.log(p2)//p2输出的是  undefined    
			
			
			
			
			
			/*类的书写*/
			/*
			class Person{
				constructor(name,age){
				//接收两个形参  这里按照es5的构造函数体书写
				this.name=name
				this.age=age
			}
				//直接书写原型上的方法即可
				sayHi(){console.log('你好  世界')}
			}
			//这时我们发现原本分开两个地方的内容变成了一个整体
			var p1=new Person('张三',18)
			console.log(p1)
			p1.sayHi()
			//var p2 = Person('李四',20)会报错  不能不和new 连用
			*/
		</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

约卡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值