getter和setter的調用方式很酷不用寫()執行括弧,就能實現調用函數當我們給創建一個對象構造器Person的時候:function Person(value) {
this.counter = value;
}我們可以給對象構造器Person添加一個getter或者setter方法:Person.prototype = {
get increment () {
this.counter++;
}
}這樣當我們new Person的時候就可以不帶執行括弧()的方式調用incrementvar person = new Person(3)
person.increment
console.log(person.counter) // 4問題:同理,當我們new一個數組的之前,我們用同樣的方式也給數組添加一個getterArray.prototype = {
get increment() {
this[0]++;
}
}
var arr = new Array(1,3);
arr.increment
console.log(arr) // Array(2)[ 1,3 ]語法沒有報錯,但事情卻毫無療效。我想知道這是為什么?但是當你給將其寫成一個方法的時候,它實際上是有療效的Array.prototype.increment = function() {
this[1]++;
}
var arr = new Array(1,3);
arr.increment()
console.log(arr) // Array(2)[ 1,4 ]
如何給js內建對象構造器添加getter和setter
吃雞游戲
2018-10-03 13:18:19