微信小程序开发交流qq群   173683895

   承接微信小程序开发。扫码加微信。

function Person(first, last) {this.first = first;this.last = last;
}
Person.prototype.fullName = function() {return this.first + ' ' + this.last;
}
Person.prototype.fullNameReversed = function() {return this.last + ', ' + this.first;
}

Person.prototype 是一个可以被Person的所有实例共享的对象。它是一个名叫原型链(prototype chain)的查询链的一部分:当你试图访问一个  Person 没有定义的属性时,解释器会首先检查这个  Person.prototype 来判断是否存在这样一个属性。所以,分配任何给  Person.prototype 的东西对通过  this 对象构造的实例都是可用的。

这个特性功能十分强大,JavaScript允许你在程序中的任何时候修改原型(prototype)中的一些东西,也就是说你可以在运行时(runtime)给已存在的对象添加额外的方法:

s = new Person("Simon", "Willison");
s.firstNameCaps();  // TypeError on line 1: s.firstNameCaps is not a functionPerson.prototype.firstNameCaps = function() {return this.first.toUpperCase()
}
s.firstNameCaps(); // SIMON

有趣的是,你还可以给JavaScript的内置函数原型(prototype)添加东西。让我们给  String 添加一个方法用来返回逆序的字符串:

var s = "Simon";
s.reversed(); // TypeError on line 1: s.reversed is not a functionString.prototype.reversed = function() {var r = "";for (var i = this.length - 1; i >= 0; i--) {r += this[i];}return r;
}
s.reversed(); // nomiS
//定义新方法也可以在字符串字面量上用(string literal)。"This can now be reversed".reversed(); // desrever eb won nac sihT

JS 面向对象编程之原型(prototype)相关推荐

  1. JS面向对象编程之:封装、继承、多态

    一.封装 (1)封装通俗的说,就是我有一些秘密不想让人知道,就通过私有化变量和私有化方法,这样外界就访问不到了.然后如果你有一些很想让大家知道的东西,你就可以通过this创建的属性看作是对象共有属性和 ...

  2. 7、JS面向对象编程之继承

    Javascript本身是从Perl语言的语法演变而来的,本质上是脚本语言,随着版本的更新逐渐加入的对面向对象的模拟.我认为Js的面向对象模拟总体上做得还是不错的,因为我们不能盲从任何一种理念,不能纯 ...

  3. JS面向对象编程之封装

    我们所熟知的面向对象语言如 C++.Java 都有类的的概念,类是实例的类型模板,比如Student表示学生这种类型,而不表示任何具体的某个学生,而实例就是根据这个类型创建的一个具体的对象,比如zha ...

  4. js中的原型(prototype)是什么?如何理解?

    JavaScript是一种通过原型实现继承的语言与别的高级语言是有区别的,像java,C#是通过类型决定继承关系的,JavaScript是的动态的弱类型语言,总之可以认为JavaScript中所有都是 ...

  5. js 原型prototype继承模式

    js中利用原型prototype的方式实现继承是最常见的继承模式,如果让a的实例继承b,原型prototype的继承方式如下: function A(){} function B(){} A.prot ...

  6. JS设计模式(原型模式)

    原型模式 概念 clone自己,生成一个新对象 java默认有clone接口,不用自己实现 应用 js中的应用 - Object.create 对比JS中的原型prototype prototype可 ...

  7. js中数组原型Array、自定义原型函数Array.prototype

    全栈工程师开发手册 (作者:栾鹏) js系列教程1-数组操作全解 js中数组原型.自定义原型函数 每个数组都包含length.prototype.constructor属性. 通过在prototype ...

  8. JS基礎:Prototype Chain 原型鏈

    JS 基礎:Prototype Chain 原型鏈 文章目錄 JS 基礎:Prototype Chain 原型鏈 簡介 參考 正文 Object 對象創建 直接量 `{}` 內置構造函數 `new O ...

  9. JS中__proto__和prototype都是什么?原型链继承解读

    首先要知道,prototype是函数才有的属性,__proto__是每个对象都有的属性 随后,先谈一下 1.什么是prototype? prototype对象是JS实现面向对象的一个重要机制. 在很早 ...

最新文章

  1. 傅莹:AI 治理,需要借鉴「核管控」教训
  2. 中国中草药提取物市场需求容量与投资价值预测报告2022年
  3. c++ 获取时间戳_分布式系统理论基础三-时间、时钟和事件顺序
  4. 骚操作!用铁丝做“电路”,不服不行!
  5. C语言深度解剖读书笔记(1.关键字的秘密)
  6. 高德地图上线车道级导航 华为Mate 40用户可尝鲜体验
  7. 数据的统计分析与描述
  8. druid 数据库连接池,简单配置
  9. [CMake] 简单的样例工程
  10. bash/shell 解析命令行参数工具:getopts/getopt
  11. 球面投影 (立体和柱面的投影效果)
  12. 关于证券公司业务部门,看这一篇文章就够了
  13. 【Vue】以登录token为例,理解vuex状态管理使用
  14. phpstorm php代码补全,基本代码补全:补全名称和关键字
  15. 服务器在美国怎样网页加速,美国服务器如何优化网站访问速度
  16. Java——万字总结网络编程
  17. 13个坏习惯让IT工作者过度劳累
  18. AI人脸识别的实现SDK
  19. Docker原生网络、自定义网络、Docker容器通信、跨主机容器网络
  20. 激光打印机如何维修?

热门文章

  1. str.format() 格式化字符串函数
  2. C# webform上传图片并生成缩略图
  3. Python学习(一) 安装,环境搭建,IDE
  4. android studio 怎么运行java
  5. iOS常用动画 类封装
  6. 【C++】【六】约瑟夫问题
  7. Flink在美团的应用与实践听课笔记
  8. 服务器端开发经验总结 Linux C语言
  9. ubuntu安装之后的最初几天一路杂记
  10. 使用GoAccess分析Nginx日志