JS原型的剖析与理解
原型相关的概念
关于面向对象的概念
- 类 class 在js中就是构造函数
- 在传统的面向对象语言中,使用一个叫类的东西定义模版,然后使用模版创建对象
- 在构造方法中也具有类似的功能,因此称其为类
- 实例与对象
- 实例一般是指某一个构造函数创建出来的对象,我们称这个对象为这个构造函数的实例
- 实例就是一个对象,对象是一个泛称
- 键值对与属性和方法
- 在js中键值对的集合称为对象
- 如果值为数据(非函数),就称该键值对为对象的属性 property
- 如果值为函数,就称为对象的方法 method
- 父类与子类
- 传统的面向语言中使用类来继承,就有父类,子类的概念
- 父类又称为基类, 子类又称为派生类
- 在 js 中常常称为父对象, 子对象. 基对象, 派生对象
- 类 class 在js中就是构造函数
原型相关的概念
- 神秘对象针对构造函数称为 "原型属性"
- 神秘对象就是构造函数的原型属性
- 简称原型
- 神秘对象针对构造函数创建出来的对象称为"原型对象"
- 当访问实例对象的属性时或方法时,如果构造函数没有,就到到对应的原型对象中去找
- 简称原型
- 对象继承自其原型
- 构造函数创建的对象 继承自 构造函数的原型属性
- 构造函数创建的对象 继承自 该对象的原型对象
- 构造函数创建的对象与构造函数的原型属性表示的是两个不同的对象
- 原型中的成员可以直接被实例对象所使用
- 实例对象继承自原型
- 这样的继承就是 "原型继承"
- 神秘对象针对构造函数称为 "原型属性"
如何使用原型
- 使用对象的动态特性
- 构造函数.prototype.XXX = vvvv;
- 直接替换
- 使用对象的动态特性
Student.prototype = { sayHello: function () {}, study: function () {} };
JS原型的剖析与理解的更多相关文章
- js原型链的深度理解!
一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object .Function 是 JS 自带的函数对象.下面举例说明 var o1 = ...
- 个人对JS原型链的一些理解(prototype、__proto__)
前言 在我一开始学习java web的时候,对JS就一直抱着一种只是简单用用的心态,于是并没有一步一步地去学习,当时认为用法与java类似,但是在实际web项目中使用时却比较麻烦,便直接粗略了解后开始 ...
- 深入理解JS原型链与继承
我 觉得阅读精彩的文章是提升自己最快的方法,而且我发现人在不同阶段看待同样的东西都会有不同的收获,有一天你看到一本好书或者好的文章,请记得收藏起来, 隔断时间再去看看,我想应该会有很大的收获.其实今天 ...
- JS高级-原型等概念深入理解
一 数据类型: 基本(值)数据类型: string number undefined null boolean 对象(引用)类型 [ 查找对象的属性时,会查找原型链 设置属性时,一般在构造函数里面设置 ...
- 37.js----浅谈js原型的理解
浅谈Js原型的理解 一.js中的原型毫无疑问一个难点,学习如果不深入很容易就晕了! 在参考了多方面的资料后,发现解释都太过专业,对于很多还没有接触过面向对象 语言的小白来说,有理解不了里面 ...
- js原型浅谈理解
之前在学习原型(prototype)的时候,一直对原型的理解不是很清晰,只是知道每个对象都有一个原型,然后在js中万物又皆对象.在这里谈一下自己对于js原型的简单理解吧. 原型可以实现属性和方法的共享 ...
- 简单粗暴地理解js原型链–js面向对象编程
简单粗暴地理解js原型链–js面向对象编程 作者:茄果 链接:http://www.cnblogs.com/qieguo/archive/2016/05/03/5451626.html 原型链理解起来 ...
- 对js原型简单的理解和图解
对js原型简单的理解和图解 最近在努力的学习js中,今天就抽了个空把自己理解的原型,记下一下在笔记中,以后自己查看,有空在会把原型链记录一下. 1.prototype prototype:是一个函数的 ...
- 【学习笔记】深入理解js原型和闭包系列学习笔记——精华
深入理解js原型和闭包笔记: 1.“一切皆是对象”,对象是属性的集合. 丨 函数也是对象,但是使用typeof时为什么函数返回function而 丨 不是object呢,js为何要对函数做这样的区分 ...
随机推荐
- 转:AM335X 启动流程
链接: http://blog.csdn.net/hudaweikevin/article/details/10376585 作者:David_Hu 启动顺序(针对TI OMA3 EVM) linu ...
- ASP超级网店V2.5一注入漏洞
Title:ASP超级网店V2.5一注入漏洞 --2011-10-30 17:59 ASP超级网店V2.5 这个系统,有很多地方可以注入 http://www.xxxxxx.com/admin/pi ...
- win7 snmp
http://blog.chinaunix.net/uid-21857285-id-3340206.html
- json转换为键值对辅助类
/// <summary> /// json转换为键值对辅助类 /// </summary> public class JsonParser { private static ...
- 如何获取drawable目录下的图片绝对路径
Uri uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + r.getResourcePackage ...
- 解决html5新标签【placeholder】低版本浏览器下不兼容问题
placeholder属性是HTML5 中为input添加的.在input上提供一个占位符,文字形式展示输入字段预期值的提示信息(hint),该字段会在输入为空时显示. 实例:1 <input ...
- 导航条上UIBarButtonItem的更改方法(使用initWithCustomView:btn)
UINavigationController *nav = [[[UINavigationController alloc] initWithRootViewController:self.newMe ...
- hdu 1724 Ellipse simpson积分
/* hdu 1724 Ellipse simpson积分 求椭圆的部分面积 simpson积分法 http://zh.wikipedia.org/zh-tw/%E8%BE%9B%E6%99%AE%E ...
- Oracle Directory文件夹的知识
在上一章介绍expdp/impdp时曾使用过DIRECTORY这个概念,以下再简单说明下DIRECTORY的点点滴滴. MOS上对DIRECTORY的解释(266875.1): (1).基于服务端 v ...
- UIView层次管理bringSubviewToFront,sendSubviewToBack
将一个UIView显示在最前面只需要调用其父视图的 bringSubviewToFront()方法. 将一个UIView层推送到背后只需要调用其父视图的 sendSubviewToBack()方法. ...