【JavaScript高级教程】JavaScript prototype(原型对象)

所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法。

function Person(first, last, age, eyecolor) {this.firstName = first;this.lastName = last;this.age = age;this.eyeColor = eyecolor;
}var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");

我们也知道在一个已存在构造器的对象中是不能添加新的属性,要添加一个新的属性需要在在构造器函数中添加:

function Person(first, last, age, eyecolor) {this.firstName = first;this.lastName = last;this.age = age;this.eyeColor = eyecolor;this.nationality = "English";
}

prototype 继承

所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法:

  • Date 对象从 Date.prototype 继承。
  • Array 对象从 Array.prototype 继承。
  • Person 对象从 Person.prototype 继承。

所有 JavaScript 中的对象都是位于原型链顶端的 Object 的实例。

JavaScript 对象有一个指向一个原型对象的链。当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。

Date 对象, Array 对象, 以及 Person 对象从 Object.prototype 继承。

添加属性和方法

有的时候我们想要在所有已经存在的对象添加新的属性或方法。

另外,有时候我们想要在对象的构造函数中添加属性或方法。

使用 prototype 属性就可以给对象的构造函数添加新的属性:

function Person(first, last, age, eyecolor) {this.firstName = first;this.lastName = last;this.age = age;this.eyeColor = eyecolor;
}Person.prototype.nationality = "English";

当然我们也可以使用 prototype 属性就可以给对象的构造函数添加新的方法:

function Person(first, last, age, eyecolor) {this.firstName = first;this.lastName = last;this.age = age;this.eyeColor = eyecolor;
}Person.prototype.name = function() {return this.firstName + " " + this.lastName;
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【javascript高级教程】JavaScript Number 对象

JavaScript 只有一种数字类型。可以使用也可以不使用小数点来书写数字。 var pi3.14; // 使用小数点 var x34; // 不使用小数点 极大或极小的数字可通过科学(指数)计数法来写: var y123e5; // 12300000 var z123e-5; // 0.0…

【leetcode】clone-graph

写在前面的话: 看了看自己的博客,从一月底开始就没怎么更新过,我也确实将近5个月没怎么写代码了。今天突然觉得有些心慌,感觉手都已经生疏了。果然,随便找了道题就卡住了。隐约感觉要用map但又不太记得用法了&#xff…

【javascript高级教程】JavaScript 字符串(String) 对象

String 对象用于处理已有的字符块。 JavaScript 字符串 一个字符串用于存储一系列字符就像 "John Doe". 一个字符串可以使用单引号或双引号: var carname"Volvo XC60"; var carnameVolvo XC60; 你使用位置(索引)可以…

Redis教程:NoSQL键值存储

课程大纲 Redis是使用ANSI C编写的具有可选持久性的开源,网络化,内存中键值数据存储。根据DB-Engines.com的月度排名,Redis是最受欢迎的键值存储。 它的名字意思是远程字典服务器。 Redis已获得BSD许可,并且通常被称为数据结构服…

java 里面eaquls和==区别

java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(),比较的是他们的值。 2.复合数据类型(类) 当他们用…

【javascript高级教程】JavaScript Array(数组) 对象

数组对象的作用是:使用单独的变量名来存储一系列的值。 创建数组, 为其赋值: var mycars new Array(); mycars[0] "Saab"; mycars[1] "Volvo"; mycars[2] "BMW"; 什么是数组? 数组对象是使用单独的变量名来存储一…

Chrome 开发工具之Network

经常会听到比如"为什么我的js代码没执行啊?","我明明发送了请求,为什么反应?","我这个网站怎么加载的这么慢?"这类的问题,那么问题既然存在,就需要去解决它,需要…

【javascript高级教程】JavaScript Date(日期) 对象

日期对象用于处理日期和时间。 创建日期 Date 对象用于处理日期和时间。 可以通过 new 关键词来定义 Date 对象。以下代码定义了名为 myDate 的 Date 对象: 有四种方式初始化日期: new Date(); new Date(value); new Date(dateString); new Date(year, monthI…

实用常识_实用垃圾收集,第1部分–简介

实用常识这是我打算写的一系列博客文章的第一部分,其目的是解释垃圾回收在现实世界中如何工作(尤其是在JVM中 )。 我将介绍一些我认为对于充分理解垃圾收集对于实际目的是必需的理论,但是将其降至最低。 其动机是在各种情况下&…

重写AgileEAS.NET SOA 中间件平台账号密码的加密算法

一、平台简介 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市…

Java中的堆栈安全递归

在本文中,摘自《 Java中的函数式编程 》一书,我解释了如何使用递归,同时避免了StackOverflow异常的风险。 Corecursion正在使用第一步的输出作为下一步的输入来构成计算步骤。 递归是相同的操作,但是从最后一步开始。 在这种情况…

数字化经营支付3.0有哪些盈利机会

实体商户的现状 服务商经营现状 官方政策支持 微信平台通过多渠道助力商户发放 优惠券,如扫码领券、API领券、支 付有礼、附近3公里等形式,给商户 做引流拓客。

nessus重置密码

许久不用的nessus密码居然忘记了,查了下: cmd下进入到nessus的安装目录 提升为管理员,登录系统 如果想用之前的账号,可以直接在系统内重置密码。转载于:https://www.cnblogs.com/nayu/p/5640527.html

程序员有哪些可以写博客的网站?

俗话说:好记性不如烂笔头,作为一名合格的程序员还是抽时间写写博客的,马云曾说“成功的人有两个特质,一个是喜欢写作,一个是喜欢演讲”,我觉得吧,写作一是为了总结,二是督促自己成长…

微信支付 h5

Android开发要点说明 商户在微信开放平台申请开发应用后,微信开放平台会生成APP的唯一标识APPID。由于需要保证支付安全,需要在开放平台绑定商户应用包名和应用签名,设置好后才能正常发起支付。 应用包名:是在APP项目配置文件And…

工厂方法设计模式示例

本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因,并了解何时以及如何应用模式中的每一个。 在这里查看 ! 目录 …

2022年java学习路线指南

目录 1.Java语言核心 2.JavaWEB前后端交互基础 3.企业常用技术 4.分布式系统 5.互联网架构技术

2022年最新UI/UE学习路线图

目录 1.软件与平面基础 2.互联网插画 3.互联网运营设计 4.C4D三维制作 5.UI设计基础

CentOS下mysql数据库常用命令总结

mysql数据库使用总结 本文主要记录一些mysql日常使用的命令,供以后查询。 1.更改root密码 mysqladmin -uroot password yourpassword 2.远程登陆mysql服务器 mysql -uroot -p -h192.168.137.10 -P3306 3.查询数据库 show databases; 4.进入某个数据库 use databasen…

2022年最新javaEE学习路线图

目录 1.java语言核心 2.java与数据库交互技术 3.javaWeb前后端交互技术基础 4.javaEE框架阶段