理解es6类的概念和es5构造函数的关联于区别,及new 操作符的的代码解析

es6写法–class

class People{
	constructor(name,age) {
	  this.name = name;
	  this.age = age;
	}
	say(){
		console.log(`My name is ${this.name},i am ${this.age}岁了`)	
	}
}
let ming = new People('xiaoming','12') 
ming.say()//My name is xiaoming,i am 12岁了
console.log(typeof People === 'function')  //true

es5写法–构造函数

	function People (name, age){
		this.name = name;
		this.age = age
	}
	People.prototype.say = function (){
		console.log(`My name is ${this.name},i am ${this.age}岁了`)	
	}
	let ming = new People('xiaoming','12')
	ming.say()  //My name is xiaoming,i am 12岁了
	console.log(typeof People === 'function') //true

new 操作符发生了什么

    // new的时候发生了什么
    // 1,let obj = new Object
    // 2,People 里面的constructor函数this指向obj:  obj.proto == People.peototype
    // 3,执行constructor方法,传入参数即
    // People.apply(obj,['xiaoming','12'])
    // /obj = {
    //     name:'xiaoming',
    //     age:'12'
    // } 
    //4,return obj; 即 ming = obj
    

我个人感觉其实es6的class,只是对es5写法的包装,其实原理没有并变化,规范了写法。而且也引入的很多新的概念,比如extend.这些后续我在写。
希望能够帮助到大家,有什么不对大神可以指出。共同学习进步。
----立志做一个高产的母猪的作者君

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值