javascript构造函数
1:基本概念
提起构造函数,我们需要从JS的创建对象开始,JS的创建对象有两种方式,一种是对象字面量法(把一个对象的属性和方法一一罗列出来),对象字面量法有一个明显的不足在于它不适合批量的或者是构建大量的类似或者重复的对象,由于这个限制也就有了另一种创建方式,构造函数。
对象字面量
const person = {
name: 'Eric',
age: 28,
school: '侠课岛',
getName: function() {
return this.name;
},
getAge: function() {
return this.age;
},
};
构造函数
function Person(name, age) {
this.name = name || '';
this.age = age || 0;
school: '侠课岛',
this.getName = function() {
return this.name;
}
this.getAge = function() {
return this.age
}
}
const Eric = new Person('Eric', 26);
什么是构造函数? 构造函数是一个构建对象的函数,在创建对象时就初始化对象,为对象成员变量赋予一个初始值,比如上面的person函数里面如果没有传name和age进去,那么默认的name的初始值就是空,age就是0。它总是与new运算符一起使用在创建对象语句中,构造函数最主要的特点在于它方便创建多个对象的实例。
2:构造函数的特点
3:构造函数与普通函数的区别
/* 构造函数 */
function Person() {
console.log('this', this);
}
const A = new Person();
/* 普通函数 */
function person() {
console.log('this', this);
}
const B = person();4:构造函数返回值(分三种情况)
function Student(name){
this.name = name || '';
}
function Teacher(name){
this.name = name || '';
}
const Davy = new Teacher('Davy');
concole.log(Davy);
function Driver(name){
this.name = name;
return {
name: 'xxx';
};
}
const Micheal = new Driver('Micheal');
console.log(Micheal);5:构造函数的构建过程(总共分为四步)
var obj = {};
obj.__proto__ = constructorFunction.prototype;
var result = constructorFunction.call(obj);
typeof result === 'object' ? result : obj;
var obj = {};
obj.__proto__ = constructorFunction.prototype;
constructorFunction.call(obj);
return obj; 本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!