读书笔记-JavaScript高级程序设计(1)
1.组合继承 (JavaScript 中最常用的继承模式 )
(position: page168)
(书中定义了两个变量名 SuperType SubType 乍一看 感觉不太能区分,我将改为 a b ,更加明显区分开来这是两个东西。)
function a(name){this.name = name;this.colors = ["red", "blue", "green"]; } a.prototype.sayName = function(){alert(this.name);}function b(name, age){//继承属性a.call(this, name);this.age = age; } //继承方法 b.prototype = new a(); b.prototype.constructor = b; b.prototype.sayAge = function(){alert(this.age); }; var instance1 = new b("Nicholas", 29); instance1.colors.push("black"); alert(instance1.colors); //"red,blue,green,black" instance1.sayName(); //"Nicholas"; instance1.sayAge(); //29 var instance2 = new b("Greg", 27); alert(instance2.colors); //"red,blue,green" instance2.sayName(); //"Greg"; instance2.sayAge(); //27
完成继承的思路:
使用原型链实现对原型属性和方法的继承, 使用构造函数来实现对实例属性的继承。
在这个例子中, a构造函数定义了两个属性: name 和 colors。 a的原型定义了一个方法 sayName()。 b构造函数在调用 a构造函数时传入了 name 参数,紧接着又定义了它自己的属性 age。然后,将 a的实例赋值给 b的原型,
然后又在该新原型上定义了方法 sayAge()。这样一来,就可以让两个不同的 b 实例既分别拥有自己属性——包括 colors 属性,又可以使用相同的方法了。
2.寄生组合式继承 (实现基于类型继承的最有效方式 )
function object(o){function F(){}F.prototype = o;return new F();
}
function inheritPrototype(subType, superType){var prototype = object(superType.prototype); //创建对象prototype.constructor = subType; //增强对象subType.prototype = prototype; //指定对象
}
function a(name){this.name = name;this.colors = ["red", "blue", "green"];
}
a.prototype.sayName = function(){alert(this.name);
};
function b(name, age){a.call(this, name);this.age = age;
}
inheritPrototype(b, a);b.prototype.sayAge = function(){alert(this.age);
};// 调用
var instance1 = new b("Nicholas", 29);instance1.colors.push("black");
alert(instance1.colors); //"red,blue,green,black"instance1.sayName(); //"Nicholas";instance1.sayAge(); //29var instance2 = new b("Greg", 27);alert(instance2.colors); //"red,blue,green"instance2.sayName(); //"Greg";instance2.sayAge(); //27
转载于:https://www.cnblogs.com/adouwt/p/9267086.html
读书笔记-JavaScript高级程序设计(1)相关推荐
- 读书笔记 - js高级程序设计 - 第四章 变量 作用域 和 内存问题
5种基本数据类型 可以直接对值操作 判断引用类型 var result = instanceof Array 执行环境 每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对 ...
- 《Javascript高级程序设计》读书笔记之对象创建
<javascript高级程序设计>读过有两遍了,有些重要内容总是会忘记,写一下读书笔记备忘 创建对象 工厂模式 工厂模式优点:有了封装的概念,解决了创建多个相似对象的问题 缺点:没有解决 ...
- 《JavaScript高级程序设计》读书笔记 -12.1 window对象
<JavaScript高级程序设计>读书笔记 -12.1 window对象 12.1 window对象 12.1.1 Global作用域 12.1.2 窗口关系[不是很懂] 12.1.3 ...
- 《JavaScript高级程序设计》读书笔记 【8章~】【持更】
文章目录 上一篇:<JavaScript高级程序设计>读书笔记 [1~7章] 8. BOM 8.1. window对象 窗口位置 窗口大小 打开窗口 间歇调用与超时调用 系统对话框 8.2 ...
- 读书笔记(06) - 语法基础 - JavaScript高级程序设计
写在开头 本篇是小红书笔记的第六篇,也许你会奇怪第六篇笔记才写语法基础,笔者是不是穿越了. 答案当然是没有,笔者在此分享自己的阅读心得,不少人翻书都是从头开始,结果永远就只在前几章. 对此,笔者换了随 ...
- JavaScript高级程序设计(读书笔记)(六)
本笔记汇总了作者认为"JavaScript高级程序设计"这本书的前七章知识重点,仅供参考. 第六章 面向对象的程序设计 面向对象(Object-Oriented, OO)的语言有一 ...
- JavaScript高级程序设计(读书笔记)(一)
本笔记汇总了作者认为"JavaScript高级程序设计"这本书的前七章知识重点,仅供参考. 第一章 JavaScript简介 JavaScript发展简史: 1995年,JavaS ...
- 《JavaScript 高级程序设计》精读笔记
本系列读书笔记是我通过学习<Javascript 高级程序设计>第3版时结合自己的理解.概括.精炼然后加以一定的拓展,总结而来的,非常适合具有一定基础,同时又想把 JS 基础学更好的童鞋, ...
- 《javascript高级程序设计》笔记:内存与执行环境
上一篇:<javascript高级程序设计>笔记:继承 近几篇博客都会围绕着图中的知识点展开 由于javascript是一门具有自动垃圾收集机制的编程语言,开发者不必担心内存的分配和回收的 ...
最新文章
- 图像特征点—SIFT特征点
- PHP使用curl_multi_add_handle并行处理
- 改改 Python 代码,运行速度还能提升 6 万倍,Science:先别想摩尔定律了
- python培训班排行榜-西安Python培训班排行榜
- jvm在不同系统中的最大内存空间地址
- java timer 线程安全_多线程之 线程安全与控制
- 一台25万公里卡罗拉的返老还童记
- 博客主题源码Yusi版本1.0,简洁明了的WordPress
- python画相关性可视化图_Python可视化matplotlibseborn16-相关性热图
- u盘安装linux系统自动关机,将u盘拔出后电脑自动关机怎么解决【解决方法】
- 启动类的@SpringBootApplication探究
- luogu4360 锯木厂选址 (斜率优化dp)
- STM32接入机智云--实现数据上传和命令下发
- 在excel中求算风向和风速范围的函数,用origin做风向玫瑰图
- 【解决】简单有效的使用lodop打印小票功能
- win10下装黑苹果双系统_黑苹果macOS10.15.4单硬盘三系统安装教程
- 报错解决:Failed to load config “react-app“ to extend from.
- 爬取豆瓣电影排行榜(评分)
- 嗯,春招两次腾讯面试都挂二面了,分享下我失败+傻傻的面试经历
- 利用matlab实现驻波仿真
热门文章
- 数据结构之直接插入排序图文详解及代码(C++实现)
- Python的单例模式
- python主要用于系统编程_一文带你了解python是什么?能做什么?为什么(附赠40G项目实战+绝版电子书)...
- 参与 Apache 顶级开源项目的 N 种方式,Apache Dubbo Samples SIG 成立!
- Go Mysql Driver 集成 Seata-Golang 解决分布式事务问题
- 电子书下载|2020 年云原生年货小红书来啦!
- 课时 22:有状态应用编排 StatefulSet(酒祝)
- SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可回滚)
- 直击痛点,详解 K8s 日志采集最佳实践
- python 字符串split 正则分割 换行符_python数据分析实战-JOINamp;SPLIT分割与合并