Object
のES6ポリフィルをインポートすることは有用ですか、それとも冗長ですか
import 'core-js/es6/object';
Object
のES7ポリフィルもですか?
import 'core-js/es7/object';
ES7ポリフィルはすべてのES6機能をカバーしていますか?また、ES6ポリフィルを省略したままにすることはできますか?それとも、ES6ポリフィルはES7ポリフィルに存在しない機能を追加しますか?
この回答はcore-js@2
。から始まる core-js@3
、別個のES6とES7プレフィックスはなくなりました。これはECMAScriptの開発方法によるものです。詳細は core-js @ 3、babel and a look to the future の投稿をご覧ください。
はい、用途があります。単純に比較 core-js/es6/object.js
から core-js/es7/object.js
。
ES6オブジェクトポリフィルは次の機能を提供します。
• Symbol
• Object.create
• Object.defineProperty
• Object.defineProperties
• Object.getOwnPropertyDescriptor
• Object.getPrototypeOf
• Object.keys
• Object.getOwnPropertyNames
• Object.freeze
• Object.seal
• Object.preventExtensions
• Object.isFrozen
• Object.isSealed
• Object.isExtensible
• Object.assign
• Object.is
• Object.setPrototypeOf
• Object.prototype.toString
一方、ES7オブジェクトのポリフィルは次の機能を提供します。
• Object.getOwnPropertyDescriptors
• Object.values
• Object.entries
• Object.prototype.__defineGetter__
• Object.prototype.__defineSetter__
• Object.prototype.__lookupGetter__
• Object.prototype.__lookupSetter__
したがって、ES6ポリフィルは実際にES6で導入されたonlyメソッドを追加しますが、これはES7ポリフィルでカバーされているnotです。それonlyはES7で導入されたメソッドを追加します。
core-jsは他のクラスと同じように構造化されているようです。