为什么人们不使用Object.defineProperty进行polyfill?

时间:2017-08-17 20:37:19

标签: javascript polyfills

例如,Mozilla Developer Network只使用Array.prototype = function来定义polyfill,但这会创建一个可以打开for-in循环的可枚举属性。

所以我使用了Object.defineProperty(Array.prototype,{enumerable:false ...

这有危险吗?为什么这不是常见的方式?

以下是来自MDN的示例polyfill: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter#Polyfill

以下是与defineProperty相同的示例:

//div[@class="another-div-class-name"]/a/text()[2]

1 个答案:

答案 0 :(得分:2)

主要是因为这些polyfill用于ES5功能,并且针对的是没有Object.defineProperty的ES3环境。

相关问题