所谓继承,比较熟悉,这里就是指定义一个新的controller/service(不同名),继承原来的controller/service,然后在其基础上重写一些功能。
所谓扩展,这里说的是在不产生新的controller/service的情况下,添加或修改原controller/service的功能。
目前研究的结果就是service可以轻松的实现继承和扩展,而controller貌似只能继承。
more
controller的继承
说到controller,我们在前面的文章中介绍过有两种写法:使用$scope或使用controller as。针对这两种方式的区别,我们也可以使用两种不同的继承方式:
* 使用controll
继续阅读 »
content
{:toc}
记录一下阅读蝴蝶书的笔记,本篇为书中以下章节的笔记:继承、数组和正则表达式。
继承
继承的两大好处:代码重用,引入一套类型系统的规范。
伪类
JavaScript 通过构造器函数产生对象。
继续阅读 »
相信大家写过AngularJS的都会发现,很多人在处理表单的数据绑定时,都习惯性的把ng-model绑定在$scope的一个对象属性上,而不是直接绑定在scope上。比如说使用而不是。这是为什么呢?这样在controller里面岂不是写起来更复杂吗?每次访问的时候都要多“点”一下,为什么不直接绑在$scope上呢?其实这样写自然是有它的好处的,而且这种写法也是推荐的最佳实践,尤其是在处理嵌套scope的情形下,这样写是很有必要的。为了弄清楚这么写的原因,我们需要深入的研究一下AngularJS里scope的继承。
more
基于原型链的继承
AngularJS的官方文档里有这么一句话来描述scope:A "child scope
继续阅读 »
原型链继承
让构造函数的原型对象等于另一个类型的实例,利用原型让一个引用类型继承另一个引用类型的属性和方法
```
function SuperType()
{
this.property=true;
}
SuperType.prototype.getSuperValue=function(){
return this.property;
};
function SubType()
{
this.subProperty=false;
}
//继承SuperType
SubType.prototype=new SuperType();
SubType.prototype.getSubValue=f
继续阅读 »
简介
在[PHP设计模式(二):抽象类和接口][2]以及[PHP设计模式(三):封装][3]中,我们已经见过继承,也就是extends关键字。
和C/C++,Java,Python等语言一样,PHP也支持继承,而且和其他语言没有什么区别。
继承/Inheritance
还是用动物、鲸鱼和鲤鱼来举例:
abstract class Animal {
protected $name;
protected function chew($food) {
echo $this-name . " is chewing " . $food . ".\n";
}
protected function diges
继续阅读 »
mdtoc start
问题: cgexec 会忽略掉 LD_PRELOAD的环境变量
解决方案
原因
继续阅读 »
创建类
1.工厂模式:解决了创建多个相似对象的问题,但却没有解决对象识别的问题(即怎样知道一个对象的类型)
```
funtion createPerson(name, age, job) {
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function () {
alert(this.name);
};
return o;
}
var person1 = createPerson("Nicholas", 29, "SE");
```
2.构造函数模式:缺点是每个方法都要在每个实例上
继续阅读 »
在大部分的语言中,都是类和对象的概念,类继承于其他类
但是在 JavaScript 中,继承是基于原型的,这意味着我们没有真真切切的 "类",我们是由对象继承于对象的(OLOO-Objects Linking to Other Object)
继续阅读 »
面向对象编程(Object Oriented Programming简称OOP)是一种计算机编程架构,程序开发方法的实践。面向对象将对象作为程序的基本单位,程序和数据封装于其中。两个基础的概念是类与对象,类与对象的关系是模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类。类描述了一组有相同特性(属性)和相同行为(方法)的对象。
面向对象的实现了三个目标,重用性、灵活性和扩展性,使系统的各个部分分工明确。使编程的代码更简洁、更易于维护。
三个基本特征
面向对象编程,有三个基本的特征:封装,继承,多态。
- 封装隐藏实现的细节,代码模块化。
- 继承扩展已存在的代码模块。
封装和继承实现了代码的重用。
- 多态在
继续阅读 »
模版方法是一种只需要使用继承就可以实现的非常简单的模式。他由两部分组成,第一部分是抽象父类,第二部分是具体实现子类。通常在抽象父类中封装了子类的算法框架,包括实现一些共用方法以及封装子类所有方法的执行顺序。子类通过继承这个抽象类,也继承了整个算法结构,并且可以选择重写父类的方法。
Coffee or Tea
假设我们现在要泡一杯咖啡步骤如下:
* 把水煮沸
* 用沸水冲泡咖啡
* 把咖啡倒进杯子
* 加糖和牛奶
泡茶的步骤:
* 把水煮沸
* 用沸水浸泡茶叶
* 把茶水倒进杯子
* 加柠檬
经过比较,我们可以发现泡茶和泡咖啡有以下共同点:
原料不同。一个是茶一个是咖啡,但是我们都可以把它们抽
继续阅读 »