许多OO语言都支持两种继承方式,接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际的方法。由于在ECMAScript中,函数没有签名,无法实现接口继承,只支持实现继承,而且其实现继承主要是通过原型链来实现的。一. 原型链模式利用原型让引用类型继承另一个引用类型的属性和方法。原型、构造函...
分类:
编程语言 时间:
2014-10-22 12:36:02
阅读次数:
214
Function 1:Object.create这是一个很重要的改动,现在我们终于可以得到一个原型链干净的对象了。以前要创建一个类Js代码functionCat(name){this.name=name;this.paws=4;this.hungry=false;this.eaten=[];}Cat...
分类:
其他好文 时间:
2014-10-20 11:15:25
阅读次数:
203
$injector、$rootScope和$scope是angularJS框架中比较重要的东西,理清它们之间的关系,对我们后续学习和理解angularJS框架都非常有用。
1、$injector其实是一个IOC容器,包含了很多服务(类似于spring框架中的bean),其它代码能够通过 $injector.get("serviceName")的方式,从injector中获取所需要的服务。
2、scope是angularJS中的作用域(其实就是存储数据的地方),很类似javascript的原型链。...
分类:
Web程序 时间:
2014-10-19 23:19:03
阅读次数:
265
前面我们知道JS是基于对象编程的一种脚本语言,在JS本着一切皆对象的原则,对象之间也涉及到了继承,不过这里的继承与我们以往学习过的继承有所不同,它运用的是对象的原型,来构造一个原型链来实现对超类对象的继承。
1、如何实现对象继承 function Box() { //Box 构造,超类对象
this.name = 'Lee';
}
Desk.prototype = new Box(); //...
分类:
Web程序 时间:
2014-10-19 21:25:16
阅读次数:
192
1.原型链继承让构造函数的原型对象等于另一个类型的实例,利用原型让一个引用类型继承另一个引用类型的属性和方法function SuperType(){ this.property=true;}SuperType.prototype.getSuperValue=function(){ re...
分类:
编程语言 时间:
2014-10-17 18:19:38
阅读次数:
257
javascript继承的两种方式1,原型链 1 2,对象冒充 1
分类:
编程语言 时间:
2014-10-09 23:03:47
阅读次数:
142
本文讲到的是如何从数据访问层面上提高JS 代码的执行效率。总的来讲有以下几条原则:函数中读写局部变量总是最快的,而全局变量的读取则是最慢的;尽可能地少用with 语句,因为它会增加with 语句以外的数据的访问代价;闭包尽管强大,但不可滥用,否则会影响到执行速度以及内存;嵌套的对象成员会明显影响性能...
分类:
其他好文 时间:
2014-10-09 14:09:14
阅读次数:
280
组合继承 组合继承(combination inheritance),有时候也叫做伪经典继承,指的是将原型链和借用构造函数的 技术组合到一块,从而发挥二者之长的一种继承模式。其背后的思路是使用原型链实现对原型属性和方 法的继承,而通过借用构造函数来实现对实例属性的继承。这样,既通过在原型上定义方.....
分类:
编程语言 时间:
2014-10-08 18:24:35
阅读次数:
210
从下面目录中可以看到,本系列有16篇文章,外加两篇后补的,一共18篇文章。写了半个月,从9月17号开始写的。每篇文章更新时,读者的反馈还是可以的,虽然不至于上头条,但是也算是中规中矩,有看的人,也有评论的人。特别是在后期讲闭包的时候。...
分类:
编程语言 时间:
2014-09-30 11:43:02
阅读次数:
213
对于从原型对象继承而来的成员,其读和写具有内在的不对等性。比如有一个对象A,假设它的原型对象是B,B的原型对象是null。如果我们需要读取A对象的name属性值,那么JS会优先在A中查找,如果找到了name属性那么就返回;如果A中没有name属性,那么就到原型B中查找name,如果找到了就返回;如果原型B中也没有找到,由于此时已经到了原型链的最顶端,还是没有找到name,就直接返回undefine...
分类:
编程语言 时间:
2014-09-29 22:20:41
阅读次数:
253