js原生设计模式——2面向对象编程之继承—原型继承(类式继承的封装)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>prototypeInherit</title>
<script type="text/javascript">
//原型式继承:实质上就是类式继承的函数封装(但有缺陷)
function inheritObject(obj){
//声明一个过渡函数对象
function _f(){}
_f.prototype = obj;
return new _f();
}
var book = {
name:'js book',
alike:['css','html']
}
var newbook = inheritObject(book);
newbook.name = 'ajax book';
console.log(newbook.name); //'ajax book'
newbook.alike.push('js');
console.log(newbook.alike); //["css", "html", "js"]
var combook = inheritObject(book);
console.log(combook.name); //'js book'
console.log(combook.alike); //["css", "html", "js"]newbook中修改加入的'js'元素,combook中也共享了
//小结:原型继承中——父对象的直接属性被分别拷贝,数组类结构属性会被共用。(推荐使用类式继承,继承的比较完美,每个实例都是独立对象,又都继承了父类的直接属性和原型prototype属性)
//本例已经通过验证
</script>
</head>
<body>
</body>
</html>
js原生设计模式——2面向对象编程之继承—原型继承(类式继承的封装)的更多相关文章
- js原生设计模式——2面向对象编程之继承—new+call(this)组合式继承
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- js原生设计模式——2面向对象编程之继承—new类式继承
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- js原生设计模式——2面向对象编程之继承—call(this)构造函数式继承
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- js原生设计模式——2面向对象编程之继承—多继承
1.单对象克隆 <!DOCTYPE html><html lang="en"><head> <meta charset=" ...
- js原生设计模式——2面向对象编程之js原生的链式调用
技巧点:对象方法中返回当前对象就可以链式调用了,即方法中写return this; <!DOCTYPE html><html lang="en"><h ...
- js原生设计模式——2面向对象编程之闭包2
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- js原生设计模式——2面向对象编程之闭包1
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- Javascript继承1:子类的的原型对象----类式继承
//声明父类 function Parent(){ this.parentValue = true; this.favorites = ['看书'] } //为父类添加公有方法 Parent.prot ...
- JS原型继承和类式继承
前言 一个多月前,卤煮读了一篇翻译过来的外国人写的技术博客.此君在博客中将js中的类(构造)继承和原型继承做了一些比较,并且得出了结论:建议诸位在开发是用原型继承.文中提到了各种原型继承的优点,详细的 ...
随机推荐
- css选择器的优先级别
<html><head lang="en"> <meta charset="UTF-8"> <title>< ...
- DW常用
Dreamweaver代码 基本结构标签: <HTML>,表示该文件为HTML文件 <HEAD>,包含文件的标题,使用的脚本,样式定义等 <TITLE>---< ...
- 常用Select语句
--语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DE ...
- 进程间通信——FIFO(多个客户进程,一个服务进程)
FIFO简介 FIFO就是Unix的一种复合POSIX标准的进程间通信机制.他又称为命名管道,跟管道的不同点是,每个FIFO都有一个路径名与之关联. FIFO虽然有路径名,但是他这中文件是在内核态(管 ...
- web容器启动顺序
web容器启动顺序: 第一:context-param 第二:Listerer 第三:Filter 第四:servlet
- sencha touch环境搭建
引入touch文件,包括resources和sencha-touch-debug.js文件 index.html文件内容如下: <!DOCTYPE HTML> <html> & ...
- 2016"百度之星" - 资格赛(Astar Round1) Problem D
排个序,map直接搞. #include <stdio.h> #include <math.h> #include<cstring> #include<cma ...
- java类集: collection, list , set, map
都在java.util包里.容器:装各种对象. Collections类 : 集合工具类, 提供了一些静态方法, 方法里的参数是List等. Colection接口,子接口主要有: Set: 内容 ...
- LPC1788的IIC使用
#ifndef __IIC0_H_ #define __IIC0_H_ #include "common.h" #include "delay.h" //IIC ...
- Qt下libusb-win32的使用方法(转)
源:Qt下libusb-win32的使用方法 之前一直找不到适合WIN7下的Tiny6410的USB下载软件,正好这几天开始学习USB,所以打算自己写一个专门用于Tiny6410的WIN7下的USB下 ...