建立物件六種方式

2021-10-16 12:38:07 字數 3282 閱讀 6494

newobject

var x=

"age"

;var obj=new object()

;obj.name=

"gao"

; obj.x=18;

.字串

obj[x]=16

;// [變數]

console.

log(obj)

;

字面量

物件 中 __proto__   

函式 中 prototype

var x=

"hooby"

;

var obj=

;obj.***=

"男";

obj[x]

="唱歌"

obj.say= function (

)

console.

log(obj)

;.字串

[變數 /

"key名"

/"key名是特殊字元"

]var obj2=

;console.

log( obj2[

"aa bb"])

; console.

log( obj2[

".x"])

;

工廠模式

var obj1=

} var obj2=

} var obj3=

} var obj4=};

function students

(name,age)

}return obj;

}1、建立函式 2、傳入引數 3、函式內建立物件 4、retrun 物件 *依次呼叫

var obj1 =

students

("gao",18

); console.

log(obj1)

;

console.

log(obj1 instanceof object)

; 迴圈呼叫

var names=

["gao"

,"wang"

,"li"

,"zhao"];

var ages=[18

,19,20

,21];

for(var i=

0;i優點: 返回 新物件,互不影響

缺點: **重複(相同方法)

有從屬(不能知道物件從那裡來)

-->instanceof 只能判斷 是 物件,不能判斷屬於誰

建構函式

優點: 有從屬  

缺點: **重複(相同方法)

共識:建構函式首字母大寫

function students

(name,age)

}

建構函式寫法:

1、建立函式 2、傳入引數 3、this.屬性名 = 值

呼叫:var obj =new 建構函式(引數)

var obj1= new students

("gao",19

); console.

log(obj1)

;

console.

log( obj1 instanceof object )

; console.

log( obj1 instanceof students )

;

原型模式

原型模式

優點: 公共/相同 的 屬性 、方法 不重複

有從屬關係// 缺點: 原型上的 屬性不可單獨改變

function fn()

fn.prototype.name=

"高";

fn.prototype.age=

19;

var obj1=new fn()

; console.

log(

"obj1"

,obj1)

; 修改 obj1.__proto__.name

obj1.__proto__.name 發生變化

obj2.__proto__.name 發生變化

obj1 和 obj2 共用 __proto__ 物件

公共/相同 的 屬性 、方法 放在 建構函式.prototype 上 -- 實現 **不重複

obj1.__proto__.name =

"王";

console.

log(

"obj1-name:"

,obj1.__proto__.name,obj1.name) var obj2=new fn()

;console.

log(

"obj2"

,obj2)

;console.

log(

"obj2-name:"

,obj2.__proto__.name,obj2.name)

;

組合模式

組合模式 (構造 + 原型)

有從屬關係

不重複屬性定義在 建構函式 內

function fn

(name,age)

方法 定義在 建構函式的 原型物件上 fn.prototype.say=

function()

var obj1= new fn

("gao",12

);

var obj2= new fn

("王",19

);console.

log(

"obj1"

,obj1)

;

console.

log(

'obj2'

, obj2)

;bj1.

say(

);

obj2.

say(

);

PHP 建立物件的六種方式

class demo public function getobj public function getstaticobj class demo1 extends demo echo 1.用new 類名 建立乙個物件 obj new demo 2.將類名以字串的方式放在乙個變數中 classnam...

JS建立物件的六種方式

表現方式 代表對映 代表賦值 var x age var obj newobject obj.name show obj.x 18 字串 obj x 40 變數 console.log obj var x hooby var obj obj.man obj x dance obj.say funct...

六種基本排序方式

package new03 public class demo4 sop 原序列的結果是 for int x nums sop n selectsort nums insertsort nums bubblesort nums quicksort nums shellsort nums heapso...