ES6构造函数class和ES5构造函数语法

ES5构造函数语法

构造函数,就是一种函数,是专门用于生成对象的函数
实例化对象,就是通过构造函数,生成的对象,称为实例化对象

构造函数分为两种:一种是JavaScript程序定义好的构造函数,称为内置构造函数
                   一种是程序员自己定义的构造函数,称为自定义构造函数

构造函数和普通函数的区别:
       1,构造函数一定要和关键词 new 一起使用
           new 关键词具有特殊的功能, 会自动的给 构造函数中 定义一个对象,并且返回这个对象
           我们只要对这个对象设定属性,设定方法就可以了
       2,构造函数和其他函数区别
           语法规范规定,构造函数,函数名称,第一个字母必须大写,使用大驼峰命名法
       3,构造函数,给对象定义属性和方法的语法,与一般函数不同
    
实例化对象和普通的对象,没有任何的区别,只是建立方式不同而已

定义 prototype 是在函数之外定义的,调用构造函数,生成实例化对象,一定要在定义 prototype 之后,
否则生成的实例化对象,只有属性没有函数方法
 function CrtObj(name, age) {
    // 定义属性
     this.name = name;
     this.age = age;
 }
 // 在构造函数的 prototype 属性中,来定义实例化对象的方法
 CrtObj.prototype.fun = function(){
     console.log(this.name, this.age);
 }
 // 定义了构造函数,可以生成实例化对象
 const obj = new CrtObj('张三',18);
 // 调用实例化对象中构造函数的方法,不能提前调用
 obj.fun();

ES6构造函数语法

ES6与ES5构造函数语法对比,其功能作用、对象的属性和属性值,与ES5语法形式完全相同,只是语法不同。
ES6新增 1,class类,用于定义属性和属性值的关键词;
		2,constructor构造器,在构造器中定义实例化。

构造器,专门接收封装类时的参数和给实例化对象定义属性和属性值
在给实例化对象定义属性和属性值时, 不知道实例化对象的具体名称,使用this来替换

注意:ES6语法定义的class类,不能被提前调用,无法执行预解析;ES5的function函数可以提前调用,但是只有属性没有方法。
class Fun{
	   constructor(name,age){
	        this.name = name;
	        this.age = age;
	   }
	   // 定义实例化对象中,需要使用的方法和函数
	   f(){
	        console.log(this.name , this.age);
	   }
}
// 定义了构造函数,可以生成实例化对象
const obj = new Fun('张三',18);
 // 调用实例化对象中构造函数的方法
obj.f();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值