Apakah Anda dapat membuat alias atau tidak tergantung pada tipe datanya. Objek, array, dan fungsi akan ditangani dengan referensi dan aliasing dimungkinkan. Tipe lain pada dasarnya atom, dan variabel menyimpan nilai daripada referensi ke nilai.
arguments.callee adalah sebuah fungsi, dan oleh karena itu Anda dapat memiliki referensi dan memodifikasi objek bersama tersebut.
function foo() {
var self = arguments.callee;
self.myStaticVar = self.myStaticVar || 0;
self.myStaticVar++;
return self.myStaticVar;
}
Perhatikan bahwa jika dalam kode di atas yang Anda katakan self = function() {return 42;};maka selfakan merujuk ke objek yang berbeda dari arguments.callee, yang tetap menjadi referensi foo. Saat Anda memiliki objek gabungan, operator penugasan menggantikan referensi, tidak mengubah objek yang dirujuk. Dengan nilai atom, kasus serupa y++setara dengan y = y + 1, yang menetapkan bilangan bulat 'baru' ke variabel.