javascrip之prototype
prototype:是一个object.
fn.prototype.__proto__=object.prototype
每个函数都有一个prototype对象(属性的集合),对于prototype的方法和属性都可以动态的增加,它所创建的对象会自动的继承相关的方法和属性。
另外,每个对象都有一个 construction属性,用于指定创建其的函数对象。
那么函数对象自身声明的方法和属性与prototype声明的属性与方法有什么不同呢?
1. 自身声明的方法和属性是 静态的,就是说,声明后。所声明的方法和属性不会对其创建的对象产生影响,即不会继承。
2. 而prototype可以动态的增加新的方法或者修改已有的方法,一旦父对象声明了相关的prototype属性,那么,由其创建的对象会 自动的继承 这些prototype属性,这就是动态的。
那么,函数对象自身有自己的属性,又有prototype的属性,那由其创建的对象是如何去搜索相应的属性
流程
1,先去搜索函数对象本身的属性,如果找到就立即执行
2, 如果1没有找到,就会去搜索prototype属性,找到则立即执行,否则继续向父对象的prototype属性寻找,直至找到,到达结尾的是object.prototype(这里依靠的是“利用访问一个对象的属性时,先在基本属性中查找,如果没有,再沿着__proto__这条链向上找,这就是原型链”每个对象都有一个__proto__,指向创建该对象的函数的prototype。
转载于:https://www.cnblogs.com/KnowLXQ/p/5427552.html
javascrip之prototype相关推荐
- 用JSON和Javscript的prototype来构建完善的Javascript面向对象表示法
[原文地址:http://www.cnblogs.com/robinhood/archive/2006/11/16/515412.html] 上次发贴没能很好的总结Javascrip编写类的方法,这次 ...
- js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip
js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会 ...
- JavaScrip笔记心得(持续更新)
JavaScrip笔记心得 一.JavaScript简介 1.JavaScript 2.JavaScript使用方法 3.JavaScript 的核心构成 4.Javascript的代码注释 5. J ...
- JavaScrip学习笔记
JavaScrip学习笔记 文章目录 一.JS两种构造函数的方法 二.对象的定义 三.原型与原型链 四.内置对象 五.时间 六.数组对象 六.DOM对象 一.JS两种构造函数的方法 var arr=f ...
- Javascript中的原型链、prototype、__proto__的关系
javascript 2016-10-06 1120 9 上图是本宝宝用Illustrator制作的可视化信息图,希望能帮你理清Javascript对象与__proto__.prototype和 ...
- 廖雪峰javascrip学习笔记进阶
标准对象 有这么几条规则需要遵守: 不要使用new Number().new Boolean().new String()创建包装对象: 用parseInt()或parseFloat()来转换任意类型 ...
- 【Spring】bean的作用域(@Scope) - singleton、prototype
已知spring 3+已拥有多种不同的作用域: singleton(默认).prototype.request.session.global session.(参考: spring中scope作用域( ...
- 细心看完这篇文章,刷新对Javascript Prototype的理解
var person={name:'ninja'}; person.prototype.sayName=function(){return this.name; } 分析上面这段代码,看看有没有问题? ...
- 几个比较冷门的prototype扩展方法:去掉html标签、去掉a标签、去掉style样式,以及判断是否为html代码的代码片段
/*去掉html标签(真正意义上去掉所有html标签包括内嵌的css样式)*/ String.prototype.stripHTML = function (isRemoveNewLine) {var ...
- javascript数组排序和prototype详解
原型的概念::原型对象里的所有属性和方法 被所有构造函数实例化出来的对象所共享,类似于java中的 static 正因为共享所以单一的操作 就会影响了全局,因此使用时需注意 基于prototype:为 ...
最新文章
- 5 用python进行OpenCV实战之图像变换2(旋转)
- 【青少年编程】【Scratch】10 画笔模块
- Oracle学习:视图与索引
- 【Linux系统编程】文件描述符的复制dup()和dup2()
- 网友怒喷运营商“为推广5G故意调慢4G网速!”官方紧急回应!
- 三分钟掌握PHP操作数据库
- iphone的生命周期
- 使用detours实现劫持
- 网页获取服务器时间,通过AFNetworking获取服务器时间
- 百度百科做起来也不难
- 计算机找不到ie浏览器,WinXP系统IE浏览器不见了怎么办?
- iOS开发-Xcode8兼容iOS7手记
- 百日计划:第一周,《七周成为数据分析师》课程近万字总结
- python中oserror_[python] 解决OSError: Address already in use
- 【语篇标记练习题】Dismissing what was said
- 编译原理(第四版)胡元义第三章部分习题答案(2)
- 基于 Robot Framework 实现网络自动化测试
- uni.showModal,uni.showToast使用
- Git 分支篇之远程分支
- 五款免费的磁盘空间使用情况报告软件
热门文章
- spring 通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明
- MySQL进阶13--常见六大约束: 非空/默认/主键/唯一约束/检查约束/外键约束--表级约束 / 列级约束...
- python-14:迭代器 生成器,3种方法:g.__next__() next(g) g.send(value)
- JavaScript基础笔记(十四)最佳实践
- 使用Delphi开发linux应用
- 关于SpringMVC注解
- [转]MySQL和SQLServer的比较
- 北京,公交遭贼后…………[Teaks]
- C语言 · 字符串输入输出函数
- 我的Android第二章