// 字面量形式
// var obj = {
// "name": "张三",
// "age":21,
// "fun": function(){
// console.log(this.name + "已经" + this.age)
// }
// }
// obj.fun()
//工厂模式
// function creatObject(name, age){
// // var o = new Object();
// // o.name = name;
// // o.age = age;
// // o.sing = function (){
// // console.log(this.name + "已经" + this.age)
// // }
// var o = new Array()
// o[0] = 1;
// o[1] = 1;
// return o
// }
// var fn1 = creatObject('zhangsan', 18)
// var fn2 = new fn1
// console.log(fn2)
// console.log(fn1 instanceof Array)
//构造函数方式
// function Fun(name, age){
// this,name = name;
// this.age = age;
// this.clone = function(){
// console.log(this.name)
// }
// }
// var obj1 = new Fun('张三', 21)
// var obj2 = new Fun('李四', 26)
// console.log(obj1, obj2, obj1.clone === obj2.clone)
// 原型模式
// function Parent(){
// }
// Parent.prototype.name = 'zhangsan'
// Parent.prototype.age = 19
// Parent.prototype.clone = function(){
// console.log(this.name)
// }
// // 创建一个实例对象
// var obj = new Parent()
// obj.clone()
// 原型+构造函数模式
function Fun(name, age, sex){
this.name = name;
this.age = age;
this.sex = sex
}
Fun.prototype.clone = function(){
console.log(this.name)
}
var obj1 = new Fun('zhangsna', 18, 'nan')
var obj2 = new Fun('lisi', 30, 'nv')
console.log(obj1) //VM5977:6 Fun {name: "zhangsna", age: 18, sex: "nan"}
console.log(obj2) //VM5500:6 Fun {name: "lisi", age: 30, sex: "nv"}
console.log(obj1.clone()) //zhangsan
console.log(obj2.clone()) //lisi
console.log(obj1.clone === obj2.clone) //true
console