js面向物件基本理解和三種建立方式
阿新 • • 發佈:2019-01-08
面向物件的語言有一個標誌,那就是他們都有類的概念,通過類可以建立任意多個具有相同屬性和方法的物件。
但是在ECMAScript中沒有類的概念,但是我們可以通過其他方式來模擬面向物件的類。
工廠模式:工廠模式是軟體工廠領域中一種廣為人知的設計模式。建構函式模式:比如像ECMAScript中的Array、Object、Date等都是通過建構函式來建立的。
//1.工廠模式 function Person(name,age,sex){ var obj = new Object(); obj.name = name; obj.age = age; obj.sex = sex; obj.sayName = function(){ console.log(this.name); } return obj; } var p = Person('小一',20,'男'); console.log(p.age); p.sayName(); //2.建構函式模式 function Person(name,age,sex){ this.name = name; this.age = age; this.sex = sex; this.sayName = function(){ console.log(this.sex); } } var p = new Person('小兒',25,'女'); console.log(p.age); p.sayName(); //3.js的方式建立物件方式 function Person(name,age,sex){ this.name = name; this.age = age; this.sex = sex; this.sayName = function(){ console.log(this.sex); } } //1.當作建構函式去使用 var obj = new Person('小兒',25,'女'); console.log(obj.sex); //2.當作一個普通函式去呼叫 Person('小兒',25,'女'); //在全域性環境裡定義屬性並賦值,直接定義在window上 console.log(name); //3.利用call apply方式 var o = new Object(); Person.call(o,'老大',123,'男'); console.log(o.age);