लागू करना लागू करना मैं इस अजीबता से फंस गया।जावास्क्रिप्ट फ़ंक्शन:
मान लीजिए मैं इस सरणी है:
var array = [{
something: 'special'
}, 'and', 'a', 'bunch', 'of', 'parameters'];
मैं एक समारोह के apply
विधि जा रहा है {something: 'special'}
this
वस्तु और मानकों array
के बाकी होने के साथ समारोह आह्वान करने के लिए apply
सकते हैं?
दूसरे शब्दों में, मैं इस
var tester = function() {
console.log('this,', this);
console.log('args,', arguments);
};
tester.apply.apply(tester, array);
करते हैं और उम्मीद करते हैं आउटपुट निम्नलिखित होने के लिए कर सकता है?
> this, {"something": "special"}
> args, {"0": "and", "1": "a", "2": "bunch", "3": "of", "4": "parameters"}
मैंने कोशिश की।
TypeError: Function.prototype.apply: Arguments list has wrong type
लेकिन क्यों? ऐसा लगता है कि यह काम करना चाहिए।
tester.apply (परीक्षक, सरणी); क्या आप चाहते हैं ... – dandavis
@ दंडवीस वास्तव में नहीं। 'This' का मान 'सरणी [0]' होना चाहिए, और पारित तर्क 'सरणी [1]' सरणी [लेन -1] ' – Ian
@Ian: क्षमा करें, गलत समझा जाना चाहिए। eval.call.apply (परीक्षक, सरणी) काम करता है, क्योंकि आप कॉल को लागू करना चाहते हैं (अभी तक भ्रमित, हे) .. – dandavis