【笔记】封装可使用的构造函数继承
来源:互联网 发布:excel做数据地图 编辑:程序博客网 时间:2024/06/08 01:12
读书笔记《javascript面向对象编程指南》
(YUI)库所用的方法:
function extend(Child, Parent) {
var F = function(){};
F.prototype = Parent.prototype;
Child.prototype = new F();
Child.prototype.constructor = Child;
Child.uber = Parent.prototype;
}
另外还有一种拷贝继承方法,属性拷贝:
这种方法与之前的不同,由于已经完成对child的原型进行扩展,不需要再重置child.prototype.constructor属性了,因为它不会再被覆盖。
与之前的方法相比,这个方法在效率上显然略孙一筹。因为这里执行的是对子对象原型的逐一拷贝。而非简单的原型链查询。
这种方式仅适用只包含基本数据类型的对象,所有的对象类型包括函数和数组,都是不可复制的,他们只支持引用传递。
function extend2(Child, Parent) {
var p = Parent.prototype;
var c = Child.prototype;
for (var i in p) {
c[i] = p[i];
}
c.uber = p;
}
var Shape = function(){}
var TwoDShape = function(){}
Shape.prototype.name = 'shape';
Shape.prototype.toString = function(){
return this.name;
}
extend2(TwoDShape,Shape);
var t = new TwoDShape();
t.name
//-->"shape"
t.toString();
//-->"shape"
TwoDShape.prototype.name = 'TwoDShape';
t.name
//-->"2d shape"
t.toString();
//-->"2d shape"
TwoDShape.prototype.toString === Shape.prototype.toString
//-->true
TwoDShape.prototype.name === Shape.prototype.name
//-->false
- 【笔记】封装可使用的构造函数继承
- Javascript 面向对象编程(一):封装/构造函数的继承/非构造函数的继承
- 学习笔记:构造函数的继承
- 非构造函数的继承--笔记
- 构造函数的继承
- 继承的构造函数
- 构造函数的继承
- 构造函数的继承
- 构造函数的继承
- 构造函数的继承
- Javascript 面向对象编程:(1)封装;(2)构造函数的继承;(3)非构造函数的继承
- C++11新特性学习笔记—继承构造函数的使用
- Java构造函数的继承-Java 学习笔记 (14)
- JavaScript学习笔记_构造函数的继承
- JavaScript学习笔记_非构造函数的继承
- 构造函数的继承(非构造函数的继承)
- 构造函数的继承问题
- 继承下的构造函数
- struts2+spring+mybatis入门教程五之配置log4j
- LeetCode--Reorder List
- python的迭代器、生成器、yield理解
- 在服务器端判断request来自Ajax请求(异步)还是传统请求(同步)
- 2014年碎碎念
- 【笔记】封装可使用的构造函数继承
- hash url hash用法
- 过滤器和拦截器的区别
- ZK 前端框架GenericForwardComposer和SelectorComposer的区别
- 用js操作cookie保存浏览记录
- linux下多定时器的实现(经典)
- 本人博客正式启动
- 一次shell中seq的处理
- [软件人生]思考:软件的目的是什么,程序员实际在做什么