I'v दोनों तरीकों के पार चलो एक देशी वस्तु को सरणी प्रोटोटाइप लागू करने के लिए:[] .slice या Array.prototype.slice
arr = Array.prototype.slice.call(obj);
arr = [].slice.call(obj);
इसी तरह, एक देशी की सच्ची प्रकार सरणी की तरह हो रही है वस्तु:
type = Object.prototype.toString.call(obj);
type = {}.toString.call(obj);
एक साधारण परीक्षण:
function fn() {
console.log(
Array.prototype.slice.call(arguments),
[].slice.call(arguments),
Object.prototype.toString.call(arguments),
{}.toString.call(arguments)
);
}
fn(0,1);
फिडल: http://jsfiddle.net/PhdmN/
वे मेरे जैसा दिखते हैं; पहला वाक्यविन्यास अधिक बार उपयोग किया जाता है, लेकिन दूसरा निश्चित रूप से छोटा है। छोटे वाक्यविन्यास का उपयोग करते समय क्या कोई कमी है?
दूसरा वाक्यविन्यास अनावश्यक रूप से एक नई वस्तु बनाता है। –
@DanD।, आपको इसे एक उत्तर के रूप में पोस्ट करना चाहिए, क्योंकि यह सही उत्तर है। ;) – Lucero