मेरे पास एक फ़ंक्शन, message
है जो संदेश के प्रकार को परिभाषित करने के लिए एक पैरा लेता है और फिर यह संदेश बनाने के लिए किसी भी अन्य तर्क में शामिल होता है, पूरी तरह से एक nicety।तर्कों के लिए तर्क तैयार करें तो
यह इस तरह दिखता है:
function message(type) {
var msg = _.rest(arguments).join(" ");
// Really the type will be used to set the class on a div
// But I'm just using console.log to keep it simple for now.
console.log(type + ": " + msg);
}
मैं सहायक काम करता है, error
, warning
, info
, जो केवल सही प्रकार के साथ message
फोन उपलब्ध कराना चाहते हैं। मैं इस बारे में जाने का सबसे अच्छा तरीका बिल्कुल अनिश्चित हूं। मैं दो तरीकों से नहीं सोच सकता लेकिन मुझे यकीन नहीं है कि मैं इसके बारे में सही तरीके से जा रहा हूं या शायद मैं चीजों को खत्म कर रहा हूं।
पहला तरीका थोड़ा अनावश्यक लगता है, पहला तर्क युक्त एक नया सरणी बनाएं और तर्क तब इसे फ़्लैट करें।
message.apply(this, _.flatten(["error", arguments]));
दूसरा तरीका थोड़ा सा महसूस करता है ... गन्दा?
Array.prototype.unshift.call(arguments, "error");
message.apply(this, arguments);
हालांकि मेरी experiement से:
(function() {
Array.prototype.unshift.call(arguments, 0);
console,log(arguments);
})(1, 2, 3);
मैं निम्नलिखित उत्पादन प्राप्त करें:
[0, 1, 2, 3, undefined, undefined, undefined, ..., undefined]
बनाने के लिए .call का उपयोग करना चाहिए यह हर जगह काम वर आर्ग = Array.prototype.slice .call (तर्क); – Dan