लोडाश _.isError नामक एक विधि प्रदान करता है। हमें val instanceof Error
के बजाय उस पद्धति का उपयोग करने की आवश्यकता क्यों है?
यदि आप स्रोत को देखते हैं, तो आप देखेंगे:
function isError(value) {
if (!isObjectLike(value)) {
return false;
}
var tag = baseGetTag(value);
return tag == errorTag || tag == domExcTag ||
(typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));
}
मुझे यकीन नहीं है कि यह जटिलता किन मामलों को संभालती है val instanceof Error
नहीं।
2
Nick Heiner
22 फरवरी 2019, 00:39
1 उत्तर
सबसे बढ़िया उत्तर
यह थोड़ा गलत है, लेकिन यह वह जगह है जहां _.isError(val)
और val instanceof Error
विचलन करते हैं:
(मान लें <script src="https://cdn.jsdelivr.net/npm/lodash@4.17.11/lodash.min.js"></script>
एचटीएमएल में है)
function Foo() {
this.message="a";
this.name="a";
}
_.isError(new Foo) // true
new Foo instanceof Error // false
मैं यह नहीं कह सकता कि क्या यह उनकी ओर से इच्छित व्यवहार है, लेकिन यह वह जगह है जहाँ लॉश विधि अतिरिक्त जटिलता को संभालती है।
4
swagrov
21 फरवरी 2019, 23:42