javascript - Leaking arguments
問題描述
誰可以幫忙解釋一哈 Leaking arguments 的概念
<script>Benchmark.prototype.setup = function() { function otherFunc(a, b) { return a + b; } function withArguments(x) { var a = arguments; return otherFunc.apply(x, Array.prototype.slice.call(a, 1)); } function withCopy(x) { var a = []; var i, len = arguments.length; for (i = 1; i < len; i += 1) { a[i - 1] = arguments[i]; } return otherFunc.apply(x, a); }
問題解答
回答1:傳遞arguments給任何方法被稱為leaking arguments
不幸的是,傳遞arguments給任何參數(shù),將導致Chrome和Node中使用的V8引擎跳過對其的優(yōu)化,這也將使性能相當慢。
withArguments 不會被V8優(yōu)化,withCopy 那種 建議線上環(huán)境使用,雖然啰嗦。
相關(guān)文章:
1. python - pyspider的分布式運行成功,2臺slave跑,但是時間并沒有縮短問題?2. 致命錯誤: Class ’appfacadeTest’ not found3. dockerfile - 為什么docker容器啟動不了?4. angular.js - 用requireJS模塊angularjs代碼時遇到一些問題5. android - Apk 中找不到r類文件6. npm install -g browser-sync這個之后出錯 還有人嗎 我都感覺沒人回答問題了7. python - 數(shù)據(jù)無法插入到mysql表里8. javascript - 小程序跳轉(zhuǎn)失敗?9. javascript - 求正則表達式的寫法10. java - Oracle如何獲取去重結(jié)果集中某一條數(shù)據(jù)的下一條數(shù)據(jù)
