ECMA- / জাভাস্ক্রিপ্ট যেহেতু সব কিছু Objects
এবং Contexts
(যা কিছুটা অবজেক্টেরও), তাই প্রতিটি ভেরিয়েবল যেমন ভেরিয়েবল- (বা কোনও ফাংশন, অ্যাক্টিভেশন অবজেক্টের ক্ষেত্রে সংরক্ষণ করা হয়) ) সংরক্ষণ করা হয়।
সুতরাং আপনি যদি এর মতো ভেরিয়েবল তৈরি করেন:
var a = 1,
b = 2,
c = 3;
ইন গ্লোবাল স্কোপ (= কোন ফাংশন প্রসঙ্গ), আপনি পরোক্ষভাবে মধ্যে যারা ভেরিয়েবল লিখতে গ্লোবাল অবজেক্ট (= window
একটি ব্রাউজারে)।
এগুলি "ডট" বা "বন্ধনী" স্বরলিপি ব্যবহার করে অ্যাক্সেস পেতে পারে:
var name = window.a;
অথবা
var name = window['a'];
এটি কেবলমাত্র, এই বিশেষ উদাহরণস্বরূপ বৈশ্বিক বস্তুর জন্য কাজ করে কারণ চলক অবজেক্ট এর গ্লোবাল অবজেক্ট হয় window
বস্তুর নিজেই। কোনও ফাংশনের প্রসঙ্গে, আপনার কাছে সরাসরি প্রবেশাধিকার নেই অ্যাক্টিভেশন অবজেক্টটিতে । এই ক্ষেত্রে:
function foobar() {
this.a = 1;
this.b = 2;
var name = window['a']; // === undefined
alert(name);
name = this['a']; // === 1
alert(name);
}
new foobar();
new
একটি স্ব-সংজ্ঞায়িত বস্তুর (প্রসঙ্গ) নতুন ইভেন্ট তৈরি করে context new
ফাংশন সুযোগ ছাড়াই এছাড়াও হবে global
(= উইন্ডো)। এই উদাহরণ সতর্কতা undefined
এবং 1
যথাক্রমে হবে। যদি আমরা এর সাথে প্রতিস্থাপন করতাম this.a = 1; this.b = 2
:
var a = 1,
b = 2;
উভয় সতর্কতা আউটপুট অপরিজ্ঞাত করা হবে। সেই দৃশ্যে, ভেরিয়েবলগুলি a
এবং b
অ্যাক্টিভেশন অবজেক্ট থেকে সংরক্ষণ করা হবে foobar
, যা আমরা অ্যাক্সেস করতে পারি না (অবশ্যই আমরা সরাসরি কল করে a
এবং সেগুলি অ্যাক্সেস করতে পারি b
)।