2013-05-10 7 views
7

में विशेषताओं और toJSON विधियों के बीच अंतर हमेशा एक या दूसरे के बराबर उपयोग होता है?बैकबोन

कंसोल में ये प्रिंट एक ही बातें

class Model extends Backbone.Model 
    defaults: 
    some: 'thing' 
    other: 'item' 

model = new Model 

console.log model.attributes 
console.log model.toJSON() 

उत्तर

13

toJSON() एक मानक पद्धति है कि जावास्क्रिप्ट JSON serializer जब एक वस्तु serializing के लिए दिखता है।

बैकबोन के संदर्भ में, यदि आप अपने मॉडल में toJSON ओवरराइड करते हैं तो आप सहेजते समय सर्वर पर भेजे गए मानों का प्रारूप बदल सकते हैं। उदाहरण के लिए आप केवल समय टिकटें जैसे फ़ील्ड पढ़ सकते हैं।

attributes जावास्क्रिप्ट ऑब्जेक्ट में मॉडल डेटा है, जो मॉडल.सेट() का उपयोग करते समय बदल जाता है। सिवाय इसके कि यदि आप मानों को बदलने के लिए सेट() का उपयोग नहीं करते हैं, तो आप सभी घटनाओं को बाईपास करते हैं और रीढ़ की हड्डी के कुछ लाभों को खो देते हैं। इसलिए यदि आप जानते हैं कि आप क्या कर रहे हैं तो केवल विशेषताओं का उपयोग करें।