
++JavaScript
文章平均质量分 52
小9
优秀是一种习惯
展开
-
利用 GitHub 统计分析编程语言发展趋势
英文原文:GitHub language trends and the fragmenting landscape Donnie Berkholz 分析了 GitHub 的数据,试图通过 GitHub 新建代码仓库的比例,分析编程语言的热度: 说明 关于这张图,有几点需要说明的:只统计新项目,不包括 fork。包括了 2008-2013 年期间在转载 2014-12-02 13:32:43 · 2121 阅读 · 0 评论 -
JavaScript面向对象编程(6)利用原型链实现继承
继承是面向对象的特性之一,继承的主要目的就是为了重用。子类能复用父类的属性或者行为,可以极大地简化子类,避免重复定义。继承的特征1.子对象拥有父对象的属性和方法继承特征2:子对象“是一个”父对象,具备“is-a”的特点,如人是动物,那么人就是动物的子类,体现在对象上,一个人必然有一个指向动物实例的引用子类的prototype指向父类的一个实例,就完成了继承,因为子类的实例上具备了父类实例的属性和行为。Java中子类实例有super关键字指向父类实例,在继承上,所有面向对象语言都差不多的。原创 2014-12-08 21:02:44 · 1083 阅读 · 0 评论 -
JavaScript面向对象编程(11)其他继承方式
1、将父对象作为新对象的原型2、在子构造器中调用父构造器Parent.apply();并传递参数,这样与父对象的this绑定的属性同时成为子对象的属性原创 2014-12-25 11:40:42 · 838 阅读 · 0 评论 -
JavaScript面向对象编程(12)对js进行简单封装
虽然现在很多js框架如jQuery都做得很好,但是从学习的角度来说,我们还是应该把js基础打牢固。既然js是面向对象的,我们就可以利用封装,将一些固定的逻辑写在通用function里面。下面的代码在不适用js框架的情况下可大大提高编程效率,而且可以遵循这个思路写更多的function。原创 2014-12-25 11:49:08 · 1474 阅读 · 0 评论 -
JavaScript面向对象编程(9)快速构建继承关系之整合原型链
前面我们铺垫了很多细节,是为了让大家更加明晰prototype的使用细节;现在可以将前面的知识整合起来,写一个函数用于快速构建基于原型链的继承关系了:原创 2014-12-23 22:46:50 · 874 阅读 · 0 评论 -
JavaScript面向对象编程(5)重写prototype造成的混乱
本文分析了js原型的部分重写和完全重写的区别:部分重写的属性(或方法),重写后新老对象都可以用,完全重写的属性(或方法)只有新对象才能用;完全重写还会屏蔽掉以前的prototype属性;分析了完全重写后,新建对象的构造器指向错误的问题,为理解通过原型完成继承做好准备。原创 2014-12-07 11:11:33 · 3807 阅读 · 0 评论 -
JavaScript面向对象编程(10)快速构建继承关系之对象拷贝
前面的例子我们是通过构造器创建对象,并且希望该对象继承来自另外一个构造器的对象我们也可以直接面向一个对象来达成继承的目的,使用下属步骤: 1、拷贝一个对象 2、给新对象添加属性原创 2014-12-23 22:54:54 · 975 阅读 · 0 评论 -
JavaScript面向对象编程(4)prototype使用案例:内置对象增强
接上一讲,prototype可以用于动态增强对象,那么有些js的原生类,没有提供我们想要的功能的时候,我们就可以用prototype对其增强。下面是一些具体的案例,希望大家能举一反三:原创 2014-12-06 21:33:31 · 1345 阅读 · 0 评论 -
JavaScript面向对象编程(2)对象上的特殊属性
js对象都有constructor属性,但是构造函数产生的对象和简单对象的属性有些不同,可自行运行下列代码了解原创 2014-12-05 21:07:49 · 1223 阅读 · 1 评论 -
JavaScript面向对象编程(3)prototype简介
prototype——原型,用于给对象动态地新增属性和行为。可以将prototype看做是一个额外的对象,在构造器上引用一个prototype对象,这个对象拥有一些属性和方法;通过构造函数产生的对象也自然链接了这个prototype对象,而且可以把prototype对象的属性和方法当做自己的;当然,原始的属性和通过prototype获得的属性还是有些不一样,至少通过hasOwnProperty可以判断出这个属性是不是自己的原生属性;另外,可以通过a.isPrototypeOf(b)来判断a是不是b的原创 2014-12-05 21:35:32 · 1544 阅读 · 0 评论 -
JavaScript面向对象编程(1)简单对象
直接声明对象var dog = { name: 'Benji', talk: function(){ alert('Woof, woof!'); }};alert(typeof(dog));dog.talk();这样dog对象拥有那么属性和talk函数。也可以用构造函数//--------构造函数--------function Hero原创 2014-12-02 21:46:35 · 1007 阅读 · 0 评论 -
JavaScript面向对象编程(8)使用中间函数
上一讲我们提出一个很好的思路,将一个类的可复用部分全部定义在prototype中,这样子类继承的时候可以很方便地通过prototype来继承;但是也带来一个问题就是子类在重写prototype中的属性时会改变所有实例的属性,这是因为父类和子类实例都共享同一个prototype;怎么解决呢?思路就是利用一个中间函数原创 2014-12-18 20:50:35 · 855 阅读 · 0 评论 -
JavaScript面向对象编程(7)只继承prototype
上一讲我们学会了通过原型来继承父类实例的属性,即用prototype指向一个父类实例。这样做我们需要人为地实例化一个父类对象,而且如果父类中有一些特别的属性和行为子类有可能是用不到。由此我们自然会想,有没有一种办法只将一些公共属性和行为公开,让子类来继承呢?做法很简单,就是将这些公共的属性和行为全部定义到父类的prototype中。原创 2014-12-11 18:05:10 · 834 阅读 · 0 评论