讲师回答 / 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
讲师回答 / Bosn
自己动手试一试,通常情况下,使用var去声明的变量,不能被delete,例如:var abc = 100;delete abc; // 返回trueabc; // 还是100但是在eval代码里,就会不同,:eval("var abc = 100;console.log(delete abc); console.log(abc);"); // 返回true, undefined
2015-04-15
回 @夜城飞雪 (汗..慕课的评论区不能直接回复也不能@)
你这段代码,i其实是全局变量,fns[i]()之所以能够“遍历”出“0、1、2、3、4”,其实是代码中第二个for循环的i,跟一个for循环里面的i没关系,那个i变量已经被你覆盖了,不然你把第二个for循环的i改成j试看看,里面fns[i]()肯定都是打印出“5”,而不是“0、1、2、3、4”
你这段代码,i其实是全局变量,fns[i]()之所以能够“遍历”出“0、1、2、3、4”,其实是代码中第二个for循环的i,跟一个for循环里面的i没关系,那个i变量已经被你覆盖了,不然你把第二个for循环的i改成j试看看,里面fns[i]()肯定都是打印出“5”,而不是“0、1、2、3、4”
2015-04-12
指出一个错误:立即执行函数表达式的缩写是IIFE(Immediately-Invoked Function Expression),不是视频里的IEF
2015-04-12