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相关推荐

  1. 用JSON和Javscript的prototype来构建完善的Javascript面向对象表示法

    [原文地址:http://www.cnblogs.com/robinhood/archive/2006/11/16/515412.html] 上次发贴没能很好的总结Javascrip编写类的方法,这次 ...

  2. js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip

    js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会 ...

  3. JavaScrip笔记心得(持续更新)

    JavaScrip笔记心得 一.JavaScript简介 1.JavaScript 2.JavaScript使用方法 3.JavaScript 的核心构成 4.Javascript的代码注释 5. J ...

  4. JavaScrip学习笔记

    JavaScrip学习笔记 文章目录 一.JS两种构造函数的方法 二.对象的定义 三.原型与原型链 四.内置对象 五.时间 六.数组对象 六.DOM对象 一.JS两种构造函数的方法 var arr=f ...

  5. Javascript中的原型链、prototype、__proto__的关系

    javascript  2016-10-06  1120  9 上图是本宝宝用Illustrator制作的可视化信息图,希望能帮你理清Javascript对象与__proto__.prototype和 ...

  6. 廖雪峰javascrip学习笔记进阶

    标准对象 有这么几条规则需要遵守: 不要使用new Number().new Boolean().new String()创建包装对象: 用parseInt()或parseFloat()来转换任意类型 ...

  7. 【Spring】bean的作用域(@Scope) - singleton、prototype

    已知spring 3+已拥有多种不同的作用域: singleton(默认).prototype.request.session.global session.(参考: spring中scope作用域( ...

  8. 细心看完这篇文章,刷新对Javascript Prototype的理解

    var person={name:'ninja'}; person.prototype.sayName=function(){return this.name; } 分析上面这段代码,看看有没有问题? ...

  9. 几个比较冷门的prototype扩展方法:去掉html标签、去掉a标签、去掉style样式,以及判断是否为html代码的代码片段

    /*去掉html标签(真正意义上去掉所有html标签包括内嵌的css样式)*/ String.prototype.stripHTML = function (isRemoveNewLine) {var ...

  10. javascript数组排序和prototype详解

    原型的概念::原型对象里的所有属性和方法 被所有构造函数实例化出来的对象所共享,类似于java中的 static 正因为共享所以单一的操作 就会影响了全局,因此使用时需注意 基于prototype:为 ...

最新文章

  1. 5 用python进行OpenCV实战之图像变换2(旋转)
  2. 【青少年编程】【Scratch】10 画笔模块
  3. Oracle学习:视图与索引
  4. 【Linux系统编程】文件描述符的复制dup()和dup2()
  5. 网友怒喷运营商“为推广5G故意调慢4G网速!”官方紧急回应!
  6. 三分钟掌握PHP操作数据库
  7. iphone的生命周期
  8. 使用detours实现劫持
  9. 网页获取服务器时间,通过AFNetworking获取服务器时间
  10. 百度百科做起来也不难
  11. 计算机找不到ie浏览器,WinXP系统IE浏览器不见了怎么办?
  12. iOS开发-Xcode8兼容iOS7手记
  13. 百日计划:第一周,《七周成为数据分析师》课程近万字总结
  14. python中oserror_[python] 解决OSError: Address already in use
  15. 【语篇标记练习题】Dismissing what was said
  16. 编译原理(第四版)胡元义第三章部分习题答案(2)
  17. 基于 Robot Framework 实现网络自动化测试
  18. uni.showModal,uni.showToast使用
  19. Git 分支篇之远程分支
  20. 五款免费的磁盘空间使用情况报告软件

热门文章

  1. spring 通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明
  2. MySQL进阶13--常见六大约束: 非空/默认/主键/唯一约束/检查约束/外键约束--表级约束 / 列级约束...
  3. python-14:迭代器 生成器,3种方法:g.__next__() next(g) g.send(value)
  4. JavaScript基础笔记(十四)最佳实践
  5. 使用Delphi开发linux应用
  6. 关于SpringMVC注解
  7. [转]MySQL和SQLServer的比较
  8. 北京,公交遭贼后…………[Teaks]
  9. C语言 · 字符串输入输出函数
  10. 我的Android第二章