Inheritance and Scopes in Egg
JavaScript — Inheritance, delegation patterns and Object linking
Scopes in Egg
This figure illustrates the chain of environment objects for the code trace explained in the video class below
corresponding to the code
do(
define(sum, # function
fun(nums, other,
do(
print(other),
define(i, 0),
define(sum, 0),
while(<(i, length(nums)),
do(define(sum, +(sum, element(nums, i))),
define(i, +(i, 1))
)
),
sum
)
)
),
print(sum(array(1, 2, 3), 4))
)
when inside the generated function for sum
The proto
… Most modern browsers, however, do offer property available called
__proto__
(that’s 2 underscores either side), which contains the object’s constructor’s
prototype
object. For example, try localenv.__proto__
and localenv.__proto__.__proto__
to see what the prototype chain looks like in code!