//利用函數來創建一個對象
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);
}
、、、、、解決問題了
參考文章: