That is a common JS idiom because the binding of "this" changes inside function calls, so one must capture the outer binding of "this" which when used in an object scenario does behave like the same keyword used in traditional OO. The naming of "self" could just be a synonym or a nod to Python (I'd have to do research to know definitively)