js使用defineProperty的一些坑
生活随笔
收集整理的這篇文章主要介紹了
js使用defineProperty的一些坑
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
var p2={};
Object.defineProperty(p2,"gs",{get:function () {return this.gs;},set:function (gs) {this.gs=gs;}
})
寫了一段如上low的代碼,然后再瀏覽器運行
alert(p2.gs);后瀏覽器報錯了
Uncaught RangeError: Maximum call stack size exceeded錯誤詳情:
由于在js中
調用的是由于其p2.gs調用的其實是gs.get方法,由于在函數內部this.gs調用的還是gs.get方法,導致其一直在循環調用,最后堆棧報錯了
解決辦法:
var p2={_gs:123 }; Object.defineProperty(p2,"gs",{get:function () {return this._gs;},set:function (gs) {this._gs=gs;} })
?
總結
以上是生活随笔為你收集整理的js使用defineProperty的一些坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Eclipse安装Jetty插件(Web
- 下一篇: JAVA面试必备的知识宝典(一)