版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
//构造函数
function CreatAPerson(name,age,sex){
//返回一个init后的对象
return new CreatAPerson.prototype.init(name,age,sex);
}
//构造函数的原型
CreatAPerson.prototype = {
constructor:CreatAPerson,
init:function (name,age,sex) {
this.name = name;
this.age = age;
this.sex = sex;
},
isPerson:true,
printf:function () {
console.log(this.name,this.age,this.sex);
}
};
//构造函数的原型中的init的原型指向构造函数原型本身,即初始化后添加构造函数原型中的方法
CreatAPerson.prototype.init.prototype = CreatAPerson.prototype;
//给window添加CrateAPerson方法
window.CreateAPerson = CreatAPerson;
//调用部分
let xiaoming = CreateAPerson('小明','21','女');
xiaoming.printf();
图解: