मुझे एक जावास्क्रिप्ट एप्लिकेशन मिला है जो कई कॉलबैक का उपयोग करता है। एक ठेठ कार्य एक कॉलबैक लेगा, और इसे एक और कॉलबैक के साथ लपेटें।मुझे कॉल() बनाम फ़ंक्शन को सीधे आवेदक का उपयोग कब करना चाहिए?
Namespace.foo = function(arg, their_on_success) {
var my_on_success = function(result) {
console.log('my_on_success() called');
if('function' === typeof their_on_success) {
their_on_success(result);
}
}
something(arg, my_on_success);
};
ऊपर के उदाहरण को देखते हुए, जब ऐसा करना चाहिए इस तरह के एक सेटअप हमें देशी call()
विधि (दूसरा तर्क के रूप में परिणाम वर गुजर) के बजाय their_on_success()
लागू और समारोह मंगलाचरण के माध्यम से परिणाम में गुजर से? आप समारोह के अंदर this
का मान सेट करना चाहते हैं है
var obj = {a: 0};
method.call(obj, "parameter");
function method(para) {
this.a == 0; // true <-- obj is now this
}
'लागू' के लिए मुख्य मामला परिवर्तनीय तर्कों से निपटने पर है, इसलिए आप इसे केवल 'तर्क' पास कर सकते हैं। –