Bạn có thể đặt bí danh gì đó hay không tùy thuộc vào kiểu dữ liệu. Các đối tượng, mảng và hàm sẽ được xử lý bằng tham chiếu và có thể sử dụng răng cưa. Các loại khác về cơ bản là nguyên tử và biến lưu trữ giá trị thay vì tham chiếu đến một giá trị.
đối số.callee là một hàm, và do đó bạn có thể có một tham chiếu đến nó và sửa đổi đối tượng được chia sẻ đó.
function foo() {
var self = arguments.callee;
self.myStaticVar = self.myStaticVar || 0;
self.myStaticVar++;
return self.myStaticVar;
}
Lưu ý rằng nếu trong đoạn mã trên mà bạn định nói self = function() {return 42;};thì sau đó selfsẽ tham chiếu đến một đối tượng khác với đối tượngarguments.callee vẫn là một tham chiếu tới foo. Khi bạn có một đối tượng ghép, toán tử gán thay thế tham chiếu, nó không thay đổi đối tượng được tham chiếu. Với các giá trị nguyên tử, một trường hợp như y++tương đương với y = y + 1, là gán một số nguyên 'mới' cho biến.