#继承的其他形式之原型继承
```
var a = {
name: '小明'
};
var b = cloneObj(a);
alert(b.name); // 小明
function cloneObj(obj){
var F = function(){};
F.prototype = obj;
return new F();
}
```
![](https://box.kancloud.cn/f8f0e8412d0f07b92f1f073a431f62b5_1437x806.png)
```
var a = {
name: '小明'
};
var b = cloneObj(a);
alert(b.name); // 小明
b.name = '小张';
alert(b.name); // 小张
alert(a.name); // 小明
function cloneObj(obj){
var F = function(){};
F.prototype = obj;
return new F();
}
```
![](https://box.kancloud.cn/53d624d91cb66f5726e8be132de67761_1438x806.png)
总结:
拷贝继承:通用型的 适用于有new或无new的时候都可以
类式继承:适用于new构造函数
原型继承:适用于无new的对象
- 01 JS面向对象及组件开发
- 02 传统的过程式编写选项卡
- 03 用面向对象封装通用选项卡
- 04 控制多个选项卡自动播放
- 05 用面向对象编写拖拽
- 06 JS面向对象及组件开发
- 07 hasOwnProperty和constructor的使用
- 08 instanceof运算符的使用
- 09 利用toString做类型判断
- 10 什么是面向对象的继承
- 11 面向对象之拷贝继承
- 12 编写继承的拖拽
- 13 继承的其他形式之类式继承
- 14 继承的其他形式之原型继承
- 15 组件开发是什么
- 16 给拖拽组件配置不同参数
- 17 封装弹框组件
- 18 使用对象标记已弹出弹框
- 19 复杂组件开发之自定义事件
- 20 原生JS实现自定义事件
- 21 自定义事件实例
- 22 基于JQ的选项卡组件开发