আমি মনে করি চিসোর প্রশ্নের সঠিক উত্তর হ'ল বাস্তবায়ন ডকুমেন্টেশনকে ছাড়িয়ে গেছে। এর আর চাবি হিসাবে স্ট্রিংয়ের দরকার নেই, বরং অন্য কিছু, যা স্ট্রিং (যেমন উদ্ধৃত) বা (সম্ভবত) এমন কিছু হতে পারে যা ভেরিয়েবল নাম হিসাবে ব্যবহার করা যেতে পারে, যার অনুমান আমি একটি অক্ষর দিয়ে শুরু করব, _ , বা $, এবং কেবলমাত্র অক্ষর, সংখ্যা এবং $ এবং _ অন্তর্ভুক্ত করে।
আমি পরবর্তী ব্যক্তির যারা এই প্রশ্নটি আমার একই ধারণাটি দিয়ে দেখে তার জন্য বাকীটি সরল করতে চেয়েছিলাম। মাংস এখানে:
যখন কোনও অবজেক্ট কী হিসাবে ব্যবহার করা হয় তখন ভেরিয়েবলের নামগুলি JSON এ অন্তর্ভুক্ত হয় না (ধন্যবাদ ফ্রেডো!)
ব্রেটান, "কী" এর পরিবর্তে "সনাক্তকারী" ব্যবহার করে লিখেছিলেন যে "যদি কোনও সনাক্তকারী কোনও সংরক্ষিত শব্দ হয়ে থাকে তবে এটি শব্দের সাথে শনাক্তকারী হিসাবে ব্যাখ্যা করা হবে না।" এটি সত্য হতে পারে তবে আমি কোনও ঝামেলা ছাড়াই চেষ্টা করেছি:
var a = {do:1,long:2,super:3,abstract:4,var:5,break:6,boolean:7};
a.break
=> 6
উদ্ধৃতি ব্যবহার সম্পর্কে, কোয়ান্টিন লিখেছেন "... তবে [কী-তে] নির্দিষ্ট অক্ষর না থাকলে (বা অক্ষরগুলির সংমিশ্রণ যা এটি একটি মূলশব্দ হিসাবে তৈরি করে)"
আমি দেখতে পেয়েছি পূর্ববর্তী অংশটি (নির্দিষ্ট অক্ষরগুলি) সত্য, @ চিহ্ন ব্যবহার করে (আসলে, আমি মনে করি $ এবং _ কেবলমাত্র অক্ষর যা ত্রুটির কারণ না করে):
var a = {a@b:1};
=> সিনট্যাক্স ত্রুটি
var a = {"a@b":1};
a['a@b']
=> ১
তবে কীওয়ার্ড সম্পর্কে প্যারেন্টিথিকাল, যেমন আমি উপরে দেখিয়েছি, সত্য নয়।
আমি যা চাইছিলাম তা কাজ করে কারণ প্রারম্ভিক {এবং কোলনের মধ্যে, বা পরবর্তী বৈশিষ্ট্যগুলির জন্য কমা এবং কোলনের মধ্যে লেখাটি কোনও অবজেক্টের কী তৈরি করতে অব্যক্ত স্ট্রিং হিসাবে ব্যবহৃত হয়, বা ফ্রেডো যেমন লিখেছে, সেখানে একটি ভেরিয়েবলের নাম নেই টি বিভক্ত করা:
var uid = getUID();
var token = getToken();
var data = {uid:uid,token:token};
data.token
=> এবিসি 123