//构造函数
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();
图解: