第一种 直接new 一个
var a = new Object()
a.name='张三'
a.age='2020'
console.log(a)
第二种 用{}
var a = {name:'张三'}
console.log(a)
第三种 工厂模式
function a(name,age){
// 先 new 一个对象
var aa = new Object()
//-----------------------
aa.name=name
aa.seg=age
aa.create=function(){
console.log('我的名字是:'+this.name +'\n'+'现在是:'+this.age+'年')
}
// 用return 返回出去
return aa
}
var b = a('张三','2020')
console.log(b)
// 调用方法
b.create()
第四种 构造函数
function a(name, age) {
this.name = name
this.seg = age
this.create = function () {
console.log(this.name)
console.log(this.age)
}
}
var aa = new a('2020','张三')
console.log(aa)
// 调用方法
aa.create()
第五种 原型
function a(name, age) {
a.prototype.fun = function () {
console.log(this.name)
console.log(this.age)
}
this.name = name;
this.age = age;
}
var aa = new a('张三', 2020);
console.log(aa);
aa.fun()
混合模式(原型加构造)
function a(name, age) {
this.name = name;
this.age = age;
}
a.prototype.run = function () {
console.log(this.name + "说,今年是" + this.age+'年');
}
var aa = new a('张三','2020');
// 调用方法
aa.run()
// ---------------------
var a = {name:'张三'}
a.__proto__.fun=function(){
console.log('0000')
}
// 调用
a.fun()
// ------------------------
// prototype:这个是构造函数里面原型添加的方法
// proto:这个是对象里面原型添加的方法