1. 程式人生 > 其它 >建立物件的四種方式

建立物件的四種方式

建立物件的三種方式

1.字面量的方式去建立物件
2.使用new字元建立物件
3.自定義建構函式
4.工廠模式建立物件
物件是指:具有屬性和方法
我之前一直以為物件就是有屬性沒有方法,尷尬了。主要是忘記了。

1.通過字面量的方式去建立物件


var person1={
    name:'柯南',
    age:12,
    sex:'男',
    eat:function(){
        console.log("我餓了,想吃飯")
    },
    say:function(){
        console.log("我叫柯南")
    }
}
console.log("person.eat輸出函式",person.eat)
person.eat(); //直接輸出 我餓了,想吃飯

我們需要注意的是person.eat和person.eat()的區別
person.eat是輸出函式
person.eat()是呼叫函式

2.使用new字元建立物件

var person2=new Object();
person2.name='柯南'
person2.age='21'
person2.sex='男'
person2.eat=function(){
    console.log("我餓了,想吃飯")
}
person2.say=function(){
    console.log("我叫柯南")
}
console.log( '性別',person2.sex ) //輸出男

上面這兩種方式去建立物件的缺點

雖然上面這兩種都可以去建立物件
但是我們創建出來的物件壓根就不知道是什麼型別?
當然我們知道他們是OBject型別
這個時候我們就需要使用自定義建構函式去建立物件了

3.自定建構函式建立物件

 function Person(name,age,sex,like){
    console.log('沒有給like形參傳遞值就是undeined',like)
    // 這裡的this指向的是Person這個物件
    console.log('this',this)
    this.name=name;
    this.age=age;
    this.sex=sex;
    this.say=function(){
        console.log("我叫",name)
    }
}
//這一行程式碼表示的是建立一個物件
//同時例項化一個物件
//並且給這個物件的屬性進行初始化
//所以這一行程式碼並不簡單
let per1=new Person('柯南',19,'男');
per1.say();
console.log(per1 instanceof Person);//true

現在我們知道了per1是屬於Person型別的
這就是自定建構函式建立物件的優勢
我們知道它建立的物件是哪個型別的
ps:建構函式通常首字母大寫

當我們new一個物件的時候做了四件事情

通過建立自定義物件我們明白了
當我們new一個物件的時候做了四件事情
1.開闢空間儲存當前物件
2.把this設定為當前物件
3.設定屬性和方法
3.把this物件返回

4.工廠模式建立物件

function createObj(name,age) {
    let obj=new Object();
    obj.name=name;
    obj.age=age;
    obj.sayHi=function(){
        console.log(obj.name)
    }
    return obj;
}
let per=createObj('司藤',200)
console.log(per.age); //200
per.sayHi(); //司藤
作者:明月人倚樓
出處:https://www.cnblogs.com/IwishIcould/

想問問題,打賞了卑微的博主,求求你備註一下的扣扣或者微信;這樣我好聯絡你;(っ•̀ω•́)っ✎⁾⁾!

如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,或者關注博主,在此感謝!

萬水千山總是情,打賞5毛買辣條行不行,所以如果你心情還比較高興,也是可以掃碼打賞博主(っ•̀ω•́)っ✎⁾⁾!

想問問題,打賞了卑微的博主,求求你備註一下的扣扣或者微信;這樣我好聯絡你;(っ•̀ω•́)っ✎⁾⁾!

支付寶 微信 本文版權歸作者所有,歡迎轉載,未經作者同意須保留此段宣告,在文章頁面明顯位置給出原文連線
如果文中有什麼錯誤,歡迎指出。以免更多的人被誤導。