讲师回答 / Bosn
Array.prototype.func这个属性不存在呀call方法是任何函数对象都有的,因为函数对象原型链上都有Function.prototype对象,该对象提供了call/apply/bind这些方法。
2015-02-10
讲师回答 / Bosn
不使用new调用函数,就是正常的函数调用,return值作为返回值,若没有return语句则返回undefined。<...code...>使用new调用函数,函数将作为构造器,调用时函数内的this会指向以foo.prototype为原型的对象,若无return语句或return返回的不是对象,则将this作为返回值。<...code...>
2015-02-06
已采纳回答 / Bosn
$只是标识符的变量名,预发上$age就像_age,没有什么特别的。从代码含义上,这里$age表示是“私有变量”,不希望被直接读写,而必须通过get/set方法。这里$age改为_age,或者__age__也是可以的。
2015-02-01
讲师回答 / Bosn
一般对于某种类型t1,首次进入时countMap没有t1属性,所以会返回undefined,则初始化默认设置为1.而后每次出现,都+1.最后统计没种类型的出现次数,若全部相同,则同构。
2015-01-30
讲师回答 / Bosn
你的问题太多太零散了,我挑重点的回答下。prototype是函数对象默认就会有一个对象属性。本身也是对象,它的作用是:作为通过new 构造函数调用时产生的对象的原型。JS是基于原型链继承的,和Java/C#这种基于类继承的语言有很大不同,后面OOP会展开讲解,不是一句两句说得清楚的。感兴趣也可以自己查阅JavaScript OOP相关资料。函数是对象并不只是JavaScript这样做,这叫做first class function(第一类函数)特性,很多语言都有。百度一下。
2015-01-29
已采纳回答 / Bosn
没错,由于版本、兼容性问题,很多例子在不同环境下执行结果不同。所以在第一章节最开头就有声明,默认以ECMAScript5/Chrome39为准。在第四章我们讨论对象上的很多方法ES5才开始支持,IE9+支持,IE6-8不支持。为了避免课程冗长,我们暂时忽略兼容性问题。有关兼容可以单独做一个课程。
2015-01-21