摘要: // 7.1递归// 递归函数是在一个函数通过名字调用自身的情况下构成的,如下所示。function factorial(num){ if(num<=1){ return 1; } else{ return num*factorial(num-1); }}var num1=factorial(4); 阅读全文
posted @ 2016-10-08 16:46 指间细碎流年 阅读(149) 评论(0) 推荐(0) 编辑
摘要: // 7.0函数表达式 // 本章内容 // 1.函数表达式的特征 // 2.使用函数实现递归 // 3.使用闭包定义私有变量 // 定义函数的方法有两种:一种是函数声明,一种是函数表达式。函数声明的语法如下: function functionName(arg0,arg1,arg2){ // 函数 阅读全文
posted @ 2016-10-08 16:45 指间细碎流年 阅读(161) 评论(0) 推荐(0) 编辑
摘要: // 组合继承是javascript中最常用的继承模式,不过,他也有自己的不足,组合继承最大的问题是无论什么情况下, // 都会调用两次超类型构造函数:一次是在创建子类型原型的时候,另一次是在子类型构造函数的内部。 // 没错,子类型最终会包含超类型对象的全部实例属性,但我们不得不在调用子类型构造函 阅读全文
posted @ 2016-09-14 11:24 指间细碎流年 阅读(261) 评论(0) 推荐(0) 编辑
摘要: // 寄生式继承是与原形式继承紧密相关的一种思路,并且也是由克罗克福德推而广之的。// 寄生式继承的思路与寄生构造函数和工厂模式类似,即创建一个仅用于封装继承过程的函数,该函数在内部以某种方式来增强对象,// 最后再像真的是他做了所有工作一样返回对象,以下代码示范了寄生式继承模式function c 阅读全文
posted @ 2016-09-14 10:40 指间细碎流年 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 这种方法并没有使用严格意义上的构造函数,接住原型可以基于已有的对象创建新对象,同时还不比因此创建自定义对象, function object(o){ function F(){}; F.prototype=o; return new F();} 克罗克福德主张的这种原形式继承,在object内部,先 阅读全文
posted @ 2016-09-14 09:18 指间细碎流年 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 组合继承,有时候也叫伪经典继承,指的是将原型链和借用构造函数的技术组合到一起,从而发挥两者之长的一种继承模式。组合继承的思路是使用原型链的方式实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承。这样,既通过在原型上定义方法实现了函数复用,又能保证每个实例都有自己的属性。 funct 阅读全文
posted @ 2016-09-13 14:45 指间细碎流年 阅读(150) 评论(0) 推荐(0) 编辑
摘要: // 在子类型构造函数的内部调用超类型的构造函数// 别忘了,函数只不过是在特定环境中执行代码的对象,因此,通过使用call()和apply()也可以在新创建的对象上执行构造函数function SuperType(){ this.colors=["red","blue","green"];}fun 阅读全文
posted @ 2016-09-12 17:29 指间细碎流年 阅读(1044) 评论(1) 推荐(0) 编辑
摘要: // ECMAScript将原型链作为继承的主要方法,其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。// 构造函数、原型和实例的关系:每个构造函数都有一个原型对象,原型对象对象都有一个指向构造函数的指针,// 而实例都包含一个指向原型对象的内部指针function SuperTy 阅读全文
posted @ 2016-09-09 12:27 指间细碎流年 阅读(132) 评论(0) 推荐(0) 编辑
摘要: // 创建自定义类型的最常见的方式,就是组合使用构造函数模式和原型模式,构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性。// 这样的话,每个实例都会有自己的一份实例属性的副本,但同时又共享着对方法的引用,最大的节省了内存// 另外,这种混成模式还支持向构造函数传递参数,可谓是集两种 阅读全文
posted @ 2016-09-02 15:51 指间细碎流年 阅读(109) 评论(0) 推荐(0) 编辑
摘要: // 原型对象的缺点:省略了为构造函数传递初始化参数这一环节,结果所有的实例在默认情况下都取的相同的属性值// 原型模式的最大问题是由其共享的性质导致的// 原型中所有属性是被很多实例共享的,这种共享对于函数非常合适,但对于包含引用类型值的属性来说,问题就比较多了function Person(){ 阅读全文
posted @ 2016-09-02 14:46 指间细碎流年 阅读(82) 评论(0) 推荐(0) 编辑