发表于: 2017-06-13 23:47:05

1 994


任务进展:

       1:上午看古尘师姐录的视频,学习svn merge操作、项目开发流程以及bug修复流程。

       2:下午和晚上看《JavaScript高级程序设计》第6章:面向对象的程序设计,用于准备小课堂PPT。

遇到问题:

       无

明日计划:

       1:完善PPT内容并演示。

       2:继续萝卜多复盘项目开发,完成推荐/最新职位切换的功能和样式。

收获:

       按照《JavaScript高级程序设计》的章节描述,重新梳理关于对象的知识。

       1:ECMA-262 把对象定义为:无序属性的集合,其属性可以包含基本值、对象或者函数。严格来讲,这就相当于说对象是一组没有特定顺序的值。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。正因为这样(以及其他将要讨论的原因).我们可以把 ECMAScript 的对象想象成散列表:无非就是一组名值对,其中值可以是数据或函数。常见的自定义对象方式为两种:Object()构造对象和对象字面量构造对象。

       2:ECMA-262第5版定义了JS对象属性的特征(用于JS引擎,外部无法直接访问)。ECMAScript中有两种属性:数据属性和访问器属性。

                  1).数据属性

                        数据属性指包含一个数据值的位置,可在该位置读取或写入值,有4个供述其行为的特性:
                        [[configurable]]:表示能否通过 delete 删除属性从而重新定义属性.能否修改属性的特性,或者能否把属性修改为访问器属性。默认为true;
                        [[Enumberable]]:表示能否通过 for-in 循环返回属性。默认为true;
                        [[Writable]]:表示能否修改属性的值。默认true;
                        [[Value]]:包含该属性的数据值。读取/写入都是该值。默认为undefined;

                  2).访问器属性
                        访问器属性不包含数据值。它包含一对 getter 和 setter 函数(这两个函数都不是必需的)。读取访问器属性时,调用 getter 函数,返回有效的值;写入访问器属性时,调用 setter 函数并传入新值并设置。该属性有以下4个特征:
                        [[Configurable]]:是否可通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为数据属性,默认值为true。
                        [[Numberable]]:是否可通过for-in循环属性;
                        [[Get]]:读取属性时调用,默认:undefined;
                        [[Set]]:写入属性时调用,默认:undefined;
                        访问器属性不能直接定义,必须使用defineProperty()来定义。

         3:创建对象的模式:工厂模式、构造函数模式、原型模式、组合使用构造函数和原型模式、动态原型模式、寄生构造函数模式、稳妥构造函数模式。

         4:对象实现继承的方式:原型链、借用构造函数、组合继承、原型式继承、寄生式继承、寄生组合式继承。

         


返回列表 返回列表
评论

    分享到