//利用函数来创建一个对象
function People(name){
this.name = name;
this.printName = function(){
console.log(name);
};
}
var p1 = new People('LouKit');
//直接采用对象创建
var obje = new Object();
obj.name = 'LouKit';
obj.printName = function(){
console.log(obj.name);
};
//利用对象字面量方式来创建
var obj = {
name: 'LouKit',
printNmae: function(){
console.log(obj.name);
}
}
===============================================
//来个需求利用对象字面量方式来创建两个对象出来
//构造对象
var obj1 = {
name: 'LouKit1',
age: 100,
printName: function(){
console.log(obj1.name);
}
}
var obj2 = {
name: 'LouKit2',
age: 91,
printName: function(){
console.log(obj2.name);
}
}
//有没有感觉太麻烦了,不符合‘面向对象’,那转变下采样抽出参数,利用函数做做自动化
===============================================
function createObj(name, age){
var obj = {
name: name,
age: age,
printName: function(){
console.log(this.name);
}
};
return obj;
}
var obj1 = createObj('LouKit1', 30);
obj1.printName();
var obj2 = createObj('LouKit2', 25);
obj2.printName();
//发线一个问题通过参数避免了每次都创建对象的麻烦 但构造高出来的对象都是Object类型对象
//那换成这样:
function Person(name, age){
this.name=name,
this.age=age,
this.printName=function(){
console.log(this.name);
}
}
var obj1 = new Person('LouKit1',20);
var obj2 = new Person('LouKit2',21);
//好像解决问题了,创建出来的对象也有自己的类型(Person),但每个实例的printName实际上作用一样,
//每个实例要重复一遍,大量对象存在的时候是浪费内存
//那就再换种,原型方式
function Person(name, age){
this.name=name,
this.age=age,
}
Person.prototype.printName = function(){
console.log(this.name);
}
、、、、、解决问题了
参考文章: