讲师回答 / Bosn
变量初始化阶段,所有变量声明都会提前处理,并且初始化值为undefined而赋值语句是在代码执行阶段触发的,经过赋值改写了变量值再alert自然就是修改之后。而变量/函数的声明,是前置处理的。
2015-04-20
讲师回答 / Bosn
这就是闭包,在初始化函数的处理(addEventListenr)时,click事件处理函数引用的是for循环中的变量i。初始化结束后,当用户点击这四个元素中的任何一个时,引用的i仍然是for循环中的i,由于初始化结束后i的值是4,所以自然就都是4.
2015-04-19
讲师回答 / Bosn
get/set方法是针对属性的,这里面用作属性“age”的get/set方法。简单的说,当对属性age赋值时,会调用age的set方法,如:obj.age = 100; // 这里会触发age属性的set方法。反之,当读取属性age值时,会调用age的get方法,如:var val = obj.age; // 这里会触发age属性的get方法。而这里的$age,和__age__, age123一样,都是一个普通的对象属性,只是为了区分这不是希望被直接读写的属性加上$最为前缀。
2015-04-15