मैं अबोज के सभी pocket
में फ़ंक्शंस प्रदान करने की कोशिश कर रहा हूं। मैं _.extend
द्वारा हर किसी की जेब में ऐसा करना चाहता हूं, यानी everyone.now
। किसी कारण से जिसे मैं समझ नहीं पा रहा हूं, _.extend
क्लाइंट पक्ष पर फ़ंक्शन को उचित रूप से प्रदान करने में विफल रहता है।मैं अबोज़ में हर किसी की जेब क्यों नहीं बढ़ा सकता?
यह मेरे वर्तमान कोड है:
var _ = require("underscore"),
everyone = require("nowjs").initialize(app);
everyone.now.foo = function() {};
_.extend(everyone.now, {
bar: function() {}
});
console.log(everyone.now.foo); // [Function]
console.log(everyone.now.bar); // undefined
दोनों सर्वर और ग्राहक पक्षों, मैं now.foo()
ठीक कर सकते हैं पर। दूसरी तरफ, now.bar()
विफल रहता है क्योंकि now.bar
परिभाषित नहीं किया गया है। क्लाइंट और सर्वर दोनों पक्षों पर यह मामला है। मैंने सर्वर की तरफ अस्तित्व की जांच करने की कोशिश की, जैसा कि अंतिम पंक्ति पर ऊपर दिखाया गया है। हालांकि, यह लाइन undefined
लॉग करती है।
अंडरस्कोर का extend
फ़ंक्शन (स्पष्ट रूप से) अन्य ऑब्जेक्ट्स पर काम करता है, इसलिए मुझे लगता है कि इसका उपयोग "जादुई नेमस्पेस" के साथ कुछ करना है जो अबोज उपयोग करता है।
विस्तार कैसे आ रहा है everyone.now
के साथ काम नहीं करता है और मैं इसे कैसे काम कर सकता हूं?
संपादित करें 2: मैं प्रॉक्सी में कुछ और खोदा। ऐसा लगता है कि एक चर को पार करके प्रॉक्सी पर एक प्रॉपर्टी सेट करना है क्योंकि इसका नाम काम नहीं करता है। मैंने अपना पहला संपादन हटा दिया क्योंकि यह टेस्टकेस अधिक संकुचित है।
यह क्यों काम नहीं कर रहा है? क्या यह एक बग है? (अधिकांश समय मैं इस अपने आप से पूछना मैं जानता हूँ कि यह नहीं है, लेकिन यह वास्तव में मुझे जानकारी नहीं कर रहा है ...)
var proxy = Proxy.create({
get: function(pr, name) {
console.log("get called");
return null;
},
set: function(pr, name, value) {
console.log("set called");
}
});
var key = "foo";
proxy["foo"] = "bar";
proxy[ key ] = "bar";
proxy["foo"];
proxy[ key ];
लॉग परिणाम:
set called
get called
get called
जाहिर है, proxy[ key ] = "bar";
का कारण नहीं है प्रॉक्सी पर set
कहलाए जाने के लिए। ऐसा क्यों है?
मेरे सिस्टम पर एक ही चीज़ चलाना प्रत्येक समारोह में दो कॉल के अपेक्षित परिणाम प्राप्त करता है। आपके पास नोड और नोड-प्रॉक्सी का संस्करण क्या है? – loganfsmyth
@ लोगन एफ स्माइथ: मैं नोड 0.6.5 पर चल रहा हूं जो कल बाहर आया था। मैं '--harmony_proxies' ध्वज के साथ नोड चला रहा हूं, इसलिए मुझे तीसरे पक्ष की लाइब्रेरी की आवश्यकता नहीं है। यह हो सकता है कि वी 8 के कार्यान्वयन में इस समय बग शामिल हों जबकि नोड-प्रॉक्सी नहीं है। मैं इसे देख लूंगा, धन्यवाद। – pimvdb