2016-05-09 15 views
9

ES6 Object.assign और Lodash _.assign के लिए प्रलेखन को देखकर यह ठीक उसी तरह से कार्य करता है।ऑब्जेक्ट.साइन बनाम lodash _.assign

क्या यह सही समझ है? या क्या मैं कुछ न कुछ भूल रहा हूं?

+3

निश्चित रूप में प्रयोग किया जाता है

असल में, आईई समर्थन नहीं है, वे करने के लिए तैयार कर रहे हैं वही चीज़। एकमात्र अंतर जो मैं देख सकता हूं वह यह है कि 'ऑब्जेक्ट.साइन' प्राथमिकता मानों को ऑब्जेक्ट्स में परिवर्तित करता है जबकि '_.assign' नहीं करता है (उदाहरण के लिए, 'ऑब्जेक्ट.सignign (" हैलो ", {foo: 1})' – apsillers

+0

सबसे अच्छा तरीका [उनके] का अध्ययन करना है (https://github.com/lodash/lodash/blob/master/vendor/underscore/underscore.js#L1036-L1060) [स्रोत] (https://developer.mozilla.org/en -US/docs/वेब/जावास्क्रिप्ट/संदर्भ/Global_Objects/वस्तु/आवंटित # polyfill)। हालांकि, लॉनाश के मामले में यह थोड़ा जटिल है, क्योंकि यह रिलीज से रिलीज में बदल जाता है - [changelog] (https://github.com/lodash/lodash/wiki/Changelog) व्यवहार में भिन्नता का भी उल्लेख करता है। – Bergi

+0

धन्यवाद @apsillers! यह जानने के लिए एक बड़ा भेद है। यदि आप एक उत्तर लिखना पसंद करते हैं तो मैं आपकी प्रतिक्रिया को बढ़ा दूंगा। – sfletche

उत्तर

17

ब्राउज़र पर निर्भर करता है। लॉनाश डॉक्स के अनुसार:

निर्मित _.assign जब उपलब्ध हो तो ऑब्जेक्ट.साइन का उपयोग करें।

आप ब्राउज़र समर्थन के लिए यहां जा सकते हैं: तो lodash के कोड उस मामले

MDN Docs on Object.assign

+0

क्षमा करें, मुझे और स्पष्ट होना चाहिए था। मुझे एहसास है कि कुछ ब्राउज़रों को अभी तक ऑब्जेक्ट.साइन के लिए समर्थन नहीं है। मैं सोच रहा था, उन वातावरणों के लिए दोनों प्रस्तावों के लिए, क्या दोनों के बीच कोई अंतर है? – sfletche

+3

लॉकैश ब्राउज़र को रोकता है, इसलिए नहीं, मूल कार्यान्वयन उस मामले में – JordanHendrix

+1

आह में उपयोग किया जाता है! माफ़ कीजिये! मैं आपके जवाब को गलत तरीके से पढ़ता हूं। अब मैं देख रहा हूं कि आप क्या कह रहे हैं (कि लॉनाश स्वयं उपलब्ध होने पर ऑब्जेक्ट.साइन का उपयोग करता है, जो ऐसा लगता है जैसे लॉनाश लेखक दोनों के बीच कोई भेद होने का इरादा नहीं रखता था)। बहुत उपयोगी। धन्यवाद @ जोर्डन हैंड्रिक्स! – sfletche

संबंधित मुद्दे