控制臺打印false,說明obj.width和obj.height不是一個函數副本,一樣的代碼塊,內存中有兩個內存副本,js為什么沒有做內存優化呢?更為奇怪的是,這種寫法是zepto.js中大量使用的寫法,例如:['width', 'height'].forEach(function (dimension) { var dimensionProperty = dimension.replace(/./, function (m) { return m[0].toUpperCase() }) $.fn[dimension] = function (value) { var offset, el = this[0] if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] : isDocument(el) ? el.documentElement['scroll' + dimensionProperty] : (offset = this.offset()) && offset[dimension] else return this.each(function (idx) { el = $(this) el.css(dimension, funcArg(this, value, idx, el[dimension]())) }) } })是這種寫法有問題,會造成同樣的代碼塊生成不同副本占用過多內存資源,還是我分析出了問題呢?來個高手幫我分析下吧。
javascript同一段函數代碼生成不同內存副本的問題?
拉莫斯之舞
2018-08-09 09:10:58