上面关于继承的实现很粗糙,并且存在很多问题:
在创建Employee构造函数和原型(以后简称类)时,就对Person进行了实例化,这是不合适的。
Employee的构造函数没法调用父类Person的构造函数,导致在Employee构造函数中对name和sex属性的重复赋值。
Employee中的函数会覆盖Person中的同名函数,没有重载的机制(和上一条是一个类型的问题)。
创建JavaScript类的语法过于零散,不如C#/Java中的语法优雅。
实现中有constructor属性的指向错误。
正因为...
分类:
编程语言 时间:
2014-06-19 11:44:43
阅读次数:
239
这个系列主要探讨的是javascript面向对象的编程,前面已经着重介绍了一下js的继承,下面想简单的说一下js如何实现封装的特性。我们知道面向对象的语言实现封装是把成员变量和方法用一个类包围起来,对类中变量的访问只能通过已定义的接口。封装可以算是一种信息隐藏技术,java通过private修饰符将...
分类:
编程语言 时间:
2014-06-17 15:57:54
阅读次数:
287
在上一篇javascript继承—prototype最优两种继承(空函数和循环拷贝)(3)
,介绍了js较完美继承的两种实现方案,那么下面来探讨一下js里是否有多继承,如何实现多继承。在这里可以看看java是如何处理多继承的问题,java里是没有多继承的,即一个子类不能同时继承多个父类,但可以实现多...
分类:
编程语言 时间:
2014-06-16 00:22:03
阅读次数:
379
javascript继承,无任是类式继承,原型式继承还是渗元式继承都是通过不同方法去围绕着prototype转,简单分析下三种不同继承方法是如何围绕prototype转的一:类似继承,先上关键代码function extend(subClass,supClass){ var fn = functi....
分类:
编程语言 时间:
2014-06-15 23:24:35
阅读次数:
204
照片墙DEMO下载注意:图片有四种类型:1可放大;2可拖动;3即可放大也可拖动;4都不行。由于每个图片的构造函数不同而不同照片墙的实现是比较容易的,网上也有许许多多的事例。本篇文章将着重介绍一下用继承的方式怎么样去实现。使用继承又能带来怎样的好处。我们知道面向对象的优势在于可扩展性,这篇文章主要就是...
分类:
编程语言 时间:
2014-06-14 19:03:13
阅读次数:
249
一、利用空函数实现继承
参考了文章javascript继承—prototype属性介绍(2) 中叶小钗的评论指点,对这篇文章中的方案二利用一个空函数进行修改,可以解决创建子类对象时,父类实例化的过程中特权属性和特权方法,私有属性,私有方法的空耗资源问题。
function Person(name,age){
this.name = name;
this.age = age;...
分类:
编程语言 时间:
2014-06-14 06:16:23
阅读次数:
328
打算针对js的继承写一系列文章,详细的分析js里继承原理,实现方式,各种继承方式的优缺点,以及最优继承方案,还有多继承的问题等….面向对象的编程的核心是封装、继承和多态,js可以看作是一种面向对象的语言,而面向对象的扩展性最核心的部分是多态,多态的必要条件有三个,首先就是继承,其次父类的引用指向子类...
分类:
编程语言 时间:
2014-06-12 22:47:57
阅读次数:
352
js里每一个function都有一个prototype属性,而每一个实例都有constructor属性,并且每一个function的prototype都有一个constructor属性,这个属性会指向自身。这会形成一个非常有意思的链式结构。举例如下:function
Person(){ thi...
分类:
编程语言 时间:
2014-06-12 08:06:26
阅读次数:
337