JS 面向对象编程之原型(prototype)
微信小程序开发交流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)相关推荐
- JS面向对象编程之:封装、继承、多态
一.封装 (1)封装通俗的说,就是我有一些秘密不想让人知道,就通过私有化变量和私有化方法,这样外界就访问不到了.然后如果你有一些很想让大家知道的东西,你就可以通过this创建的属性看作是对象共有属性和 ...
- 7、JS面向对象编程之继承
Javascript本身是从Perl语言的语法演变而来的,本质上是脚本语言,随着版本的更新逐渐加入的对面向对象的模拟.我认为Js的面向对象模拟总体上做得还是不错的,因为我们不能盲从任何一种理念,不能纯 ...
- JS面向对象编程之封装
我们所熟知的面向对象语言如 C++.Java 都有类的的概念,类是实例的类型模板,比如Student表示学生这种类型,而不表示任何具体的某个学生,而实例就是根据这个类型创建的一个具体的对象,比如zha ...
- js中的原型(prototype)是什么?如何理解?
JavaScript是一种通过原型实现继承的语言与别的高级语言是有区别的,像java,C#是通过类型决定继承关系的,JavaScript是的动态的弱类型语言,总之可以认为JavaScript中所有都是 ...
- js 原型prototype继承模式
js中利用原型prototype的方式实现继承是最常见的继承模式,如果让a的实例继承b,原型prototype的继承方式如下: function A(){} function B(){} A.prot ...
- JS设计模式(原型模式)
原型模式 概念 clone自己,生成一个新对象 java默认有clone接口,不用自己实现 应用 js中的应用 - Object.create 对比JS中的原型prototype prototype可 ...
- js中数组原型Array、自定义原型函数Array.prototype
全栈工程师开发手册 (作者:栾鹏) js系列教程1-数组操作全解 js中数组原型.自定义原型函数 每个数组都包含length.prototype.constructor属性. 通过在prototype ...
- JS基礎:Prototype Chain 原型鏈
JS 基礎:Prototype Chain 原型鏈 文章目錄 JS 基礎:Prototype Chain 原型鏈 簡介 參考 正文 Object 對象創建 直接量 `{}` 內置構造函數 `new O ...
- JS中__proto__和prototype都是什么?原型链继承解读
首先要知道,prototype是函数才有的属性,__proto__是每个对象都有的属性 随后,先谈一下 1.什么是prototype? prototype对象是JS实现面向对象的一个重要机制. 在很早 ...
最新文章
- 傅莹:AI 治理,需要借鉴「核管控」教训
- 中国中草药提取物市场需求容量与投资价值预测报告2022年
- c++ 获取时间戳_分布式系统理论基础三-时间、时钟和事件顺序
- 骚操作!用铁丝做“电路”,不服不行!
- C语言深度解剖读书笔记(1.关键字的秘密)
- 高德地图上线车道级导航 华为Mate 40用户可尝鲜体验
- 数据的统计分析与描述
- druid 数据库连接池,简单配置
- [CMake] 简单的样例工程
- bash/shell 解析命令行参数工具:getopts/getopt
- 球面投影 (立体和柱面的投影效果)
- 关于证券公司业务部门,看这一篇文章就够了
- 【Vue】以登录token为例,理解vuex状态管理使用
- phpstorm php代码补全,基本代码补全:补全名称和关键字
- 服务器在美国怎样网页加速,美国服务器如何优化网站访问速度
- Java——万字总结网络编程
- 13个坏习惯让IT工作者过度劳累
- AI人脸识别的实现SDK
- Docker原生网络、自定义网络、Docker容器通信、跨主机容器网络
- 激光打印机如何维修?