讲师回答 / Bosn
红色区域内,try没有对应的catch,所以throw出去的Error("oops")抛了出去,在此之前不管是否抛异常都要先走finally,所以先输出"finally", 而后外层的try/catch捕获到这个Error("oops"),所以第二条输出"outer" "oops"
2015-03-04
讲师回答 / Bosn
在视频里其实介绍过,如果直接写{}.toString, {}会被解释为块儿,类似while (true) {}这里的{}.而这里需要的是一个对象字面量,所以要这样写:({}).toString.apply或者var result = {}.toString.apply...都可以。
2015-02-26
讲师回答 / Bosn
我已经尽可能的用大量例子去讲解了,并且也配合了对比。如果还是看不懂的话,建议找一些书籍,或网上搜索一些材料再仔细看看。如果还有问题,具体问题具体分析。“有些模糊”这种描述,没办法给你回答。
2015-02-24
讲师回答 / Bosn
直接调用对象的toString方法一般都没有什么特别意义。需要自己去做处理。例如:var student = { 'age' : 23, 'name' : 'Bosn', 'toString' : function() {console.log(this.age, this.name);}};student.toString(); // 23 "Bosn"
2015-02-17
已采纳回答 / Bosn
应用的场景也是很多的,但确实暂时并不是特别常见。Node.js编程,需要对属性的访问做控制,需要更健壮的get/set方法提供属性存取的控制。前端安全,通过Object.defineProperties禁止部分敏感属性的访问。来防止前端页面环境被插件、ISP等因素篡改。一些较为复杂的业务逻辑或较为底层的库,get/set/权限控制在一些情况下会让代码更加健壮。当然,defineProperties是IE9+才支持的方法,完美的普及和应用还需要一些时间,但不会太远。
2015-02-17
已采纳回答 / Python工程师
在程式设计的型别系统中,数据类型(Data type)是用来约束数据的解释。在编程语言中,常见的数据类型包括原始类型(如:整数、浮点数或字符)、多元组、记录单元、代数数据类型、抽象数据类型、参考型别、类别以及函式型别。数据类型描述了数值的表示法、解释和结构,并以算法操作,或是物件在内存中的储存区,或者其它储存装置。
2015-02-11
已采纳回答 / Bosn
x应该在Foo.prototype上,所以Foo.prototype.hasOwnProperty('x')才返回false而Foo是函数对象,Foo.__proto__其实是Function.prototype,这两个对象上当然木有x属性咯~~~再仔细看看原型链,看不懂也没关系,OOP章节我还会再次提到原型链,并且会更加展开的讲解。有问题再开新帖回复哟~~~慕课网被回复似乎看不到。。。(摔~)
2015-02-11