最新回答 / 楼兰王子
第一个问题:forEach函数的声明是这样的:<...code...>可以看到,第一个参数是数组的值,第二个是索引,第三个是数组。如果使用时只用一个参数,只会遍历值,不会访问另外两个值。第二个问题:<...code...>看见sort可以接收一个比较函数,来决定元素的排序规则,如果缺省,将按ASCII character 规则排序。是否还有疑问?
2016-10-17
最新回答 / bumuxiaojie
对象字面量定义的对象指向的就是Object,所以直接使用__proto__就可以从Object.prototype上获取。而函数定义的是返回function,function需要在Object的原型链上查找
2016-10-15
最赞回答 / 时间是个魔鬼
首先get age() 、set age(v) 其实已经相当于声明了一个age属性,但你在上面已经声明过一次,这在严格模式下会检查出错。然后你在get age()里试图使用this.age 会循环调用get age()方法,最终结果就是爆栈 ~_~;另外 可以学习下chrome的调试工具的使用,通过设置断点来观察变量和执行顺序会有很大帮助另外的另外 还是贴代码比截图好多了吧,提问窗左上角有个下拉框选择语言
2016-10-14
已采纳回答 / Zero_index
b是new出来的一个对象,所以b.toString()返回的是字符串"object object",然后用typeof运算符去判断b.toString()的数据类型就会返回string.
2016-10-13
已采纳回答 / 时间是个魔鬼
抛开你截图的代码(倒数第二行并不能得到你想要的原型链...), 按你的文字描述foo.g=5的g是foo的自有属性,也就是foo.hasOwnProperty("g")===true;foo.hasOwnProperty("z")===false;使用 var obj = new foo() 这种继承方式会把foo.prototype上的属性直接挂到obj.__proto__上,这种方式和Object.create([Object])继承原理是不同的,老师后面的课程应该会有介绍。
2016-10-13
最新回答 / 时间是个魔鬼
try..catch 或者说异常处理 在编程中是 非常非常非常 重要的 。至于为什么重要,可以说搜一下这方面的文章,当然以后敲的多了自有体会。说异常是自己输入的不太准确,应该说我们可以制造并抛出异常 就像 throw new Error("我是被制造出来的哦")。Error 也是个对象,它负责对异常信息的包装,这里通过它的构造函数来创建一个异常。throw 会将刚刚创建的异常抛出,如果上层还有try就会受到这个异常并对其处理,依次类推,如果最外层扔抛出异常,程序就会终止并把异常打印到控制台。就像你之前敲代...
2016-10-13
已采纳回答 / 深夏之叶
重载就是一组具有相同名字、不同参数列表的函数(方法)。作者: visor_03389873 链接:http://www.imooc.com/article/8621来源:慕课网
2016-10-11
最新回答 / 勇闯极限
这里用call是为了使用student中的2个参数name,和age来调用构造函数里的name和age,用call调用student里就不用在写this.name=name,this.age=age了,如果还不懂的话你就上网查call和apply和bind的用法。
2016-10-11