生活随笔
收集整理的這篇文章主要介紹了
ES5-8 闭包高级、对象、构造函数、实例化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 對象
- 對象內定義的函數一般稱之為方法,在外部的函數聲明稱為函數
- 對象刪除屬性使用delete 關鍵字
var obj
= {a
: 1,b
: 'string'
}
console
.log('obj', obj
)
delete obj
.b
console
.log('obj', obj
)
- 在對象里,this指代這個對象本身
- 創建對象:使用對象字面量或者new Object()
- 自定義構造函數應用于:模塊化、插件化、組件化
- 只有new了構造函數以后,this才存在,指向teacher對象,在實例化以前,GO里是沒有this的
- 通過構造函數實例化出來的多個對象,他們之間是互不相同的
- 練習1:
function
myFun() {var sum
= 0var multi
= arguments
.length
=== 0 ?
0 : 1for (var i
= 0; i
< arguments
.length
; i
++) {sum
+= arguments
[i
]multi
*= arguments
[i
]}console
.log('累加/乘積', sum
, multi
)
}
myFun(1, 2, 3)
myFun(2, 0, 3)
function
MyFun() {var arg
= arguments
var resthis
.sumFn
= function
() {res
= 0loop('add', res
)}this
.multiFn
= function
() {res
= arg
.length
=== 0 ?
0 : 1loop('multi', res
)}function
loop(method
, res
) {for (var i
= 0; i
< arg
.length
; i
++) {if (method
=== 'add') {res
+= arg
[i
]} else if (method
=== 'multi') {res
*= arg
[i
]}}console
.log(method
== 'add' ?
'累加' : '累乘', res
)}
}
let funObj
= new MyFun(1, 2, 3)
funObj
.sumFn()
funObj
.multiFn()
let funObj2
= new MyFun(2, 0, 3)
funObj2
.sumFn()
funObj2
.multiFn()
var carOpts
= {expensive
: {brand
: '賓利',price
: 500},cheap
: {brand
: '吉利',price
: 10}
}
function
Car(carOpt
) {this
.brand
= carOpt
.brandthis
.price
= carOpt
.price
}
function
Customer(option
) {this
.name
= option
.namethis
.age
= option
.agethis
.salary
= option
.salarythis
.type = option
.typethis
.buy
= function
() {console
.log(option
.name
+ '買的車', new Car(carOpts
[option
.type]))}
}
var customerObj
= new Customer({ name
: '完顏洪烈', age
: 30, salary
: 1000, type: 'expensive' })
console
.log('客戶:', customerObj
)
customerObj
.buy()
var customerObj2
= new Customer({ name
: '楊康', age
: 18, salary
: 10, type: 'cheap' })
console
.log('客戶:', customerObj2
)
customerObj2
.buy()
總結
以上是生活随笔為你收集整理的ES5-8 闭包高级、对象、构造函数、实例化的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。