【复习】javascript 原型对象,对象原型,原型对象和原型中的构造函数(constructor)

js基础复习3-构造函数 constructor 下面的代码,我们可以看出,Rabbit的原型对象prototype和Rabbit实例对象r1的对象原型r1.__proto__里面都有一个constructor属性: 很多情况下,我们需要手动利用constructor这个属性指回原来的构造函数,比如我们刚才的Rabbit构造函数里面只有一个方法sing,如果我们想把多个方法放到Rabbit中,比如下面这样: 这时我们的Rabbit里面就有两个方法了,但是! 如果我们有很多很多的方法要放在Rabbit里面,那是不是可以考虑把这些方法全都包裹在一个对象 阅读详情

原型对象

 原型对象(prototype)是构造函数的一个属性,指向另一个对象;原型对象本身就是一个对象,原型对象的所有属性和方法,都被构造函数所拥有

  • 构造函数通过原型对象定义的方法是该构造函数的所有对象共享的
  • 更倾向于把不变或者常用的方法,直接定义在prototype对象上,这样,构造函数的所有实例对象都可共享这些方法
  • 一般情况下,会把公共方法定义到原型对象上 ,可以避免浪费内存
function Person (uname, age) {
			this.uname = uname;
			this.age = age;
		}

		// 每个构造函数都有一个属性,prototype,称为原型对象
		// console.log( Person.prototype );
		Person.prototype.say = function () {
			console.log('说话哇哈哈');
		}

		var obj = new Person('张三丰', 22);
		console.log( obj );
		// obj.say();


		// function Star () {}
		// console.log( Star.prototype );

 

  对象原型

  简称原型(__proto__)

  •   对象都会有一个属性__proto__,它指向构造函数的原型对象(prototype),对象之所有可以使用原型对象上的方法,就是因为对象上有__proto__的存在。
  • __proto__原型和prototype原型对象是等价的
  • __proto__对象的意义在于为对象的查找机制提供一个方向,但它是一个非标准属性,只可读,不可写,实际开发中并不使用这个属性,它只是内部指向prototype
console.log( obj.__proto__ );

  

  constructor(构造函数)

  这里指原型对象和原型中的constructor,原型对象(prototype)和原型(__proto__)里面都有一个constructor属性

  •   constructor指回构造函数本身
  • 主要记录对象引用于哪个构造函数,它可是让原型对象重新指向原来的构造函数

  

  构造函数,原型对象和原型三者之间的关系

  

 

 

  原型链 

  提供一个成员的查找机制,或者查找规则

  

 

 

javascript的成员查找机制

  • 当访问一个对象的属性(包括方法)时,首先查找这个对象自身有没有该属性。
  • 如果没有就查找它的原型(也就是__proto__指向的prototype 原型对象)。
  • 如果还没有就查找原型对象的原型(Object的原型对象)。
  • 依此类推一直找到Object 为止(null)。
  • __proto__对象原型的意义就在于为对象成员查找机制提供一个方向,或者说一条路线。

 

 

  重写prototype

// 构造函数
		function Star (uname, age) {
			this.uname = uname;
			this.age = age;
		}
		// 方法
		// console.log(Star.prototype);
		/* Star.prototype.chang = function () {
			console.log('唱歌');
		}
		Star.prototype.tiao = function () {
			console.log('跳舞');n
		Star.prototype.rap = function () {
			console.log('rap');
		} */
        // 重写prototype,会覆盖constructor,所以重写prototype的同时,也重写constructor
		Star.prototype = {
			// constructor : Star,
			constructor : Star,
			chang : function () {},
			tiao : function () {},
			rao : function () {}
		};
		console.log(Star.prototype);

  

  拓展内置对象

  这里以拓展Array对象为例

  Array.prototype.sum = function () {
		var sum = 0;
		for (var i = 0; i < this.length; i++) {
			sum += this[i];
		}
		return sum;
	}

	var arr = [1,2,3];
	console.log( arr.sum() );

	var newArr = [6,7,8,9];
	console.log( newArr.sum() );

 

js的高级笔记2:构造函数、原型对象、对象原型、原型链、call()、forEach()、filter()、some()、trim()、获取对象的属性名、设置对象的属性值 1.构造函数和原型 1.1对象的三种创建方式–复习 字面量方式 var obj = {}; new关键字 var obj = new Object(); 构造函数方式 function Person(name,age){ this.name = name; this.age = age; } var obj = new Person('zs',12); <script> //创建对象的方法 //方法1:new Object() var ob1 阅读详情

相关推荐

从PCIe 3.0到6.0:为什么“阻抗一致性”比“绝对值”更重要?聊聊连接器与板材的选型影响

本文探讨了PCIe从3.0到6.0演进过程中,阻抗一致性相比绝对值的重要性,分析了连接器与板材选型对高速信号完整性的影响。随着速率提升至64GT/s,系统级阻抗控制和验证成为关键,文章提供了选型指南、验证方法论及工程实践建议,帮助工程师应对高速设计挑战。

weixin_42556197的博客 384

JavaScript原型对象---知识总结

任何一个JavaScript对象(一般有对花括号)都有一个原型对象,这个原型对象是JavaScript语言内置的,JavaScript对象可以使用原型对象的属性和方法。

qq_47286790的博客 3671

【星火】海思HI3516C开发板实战:基于LVGL与MPP库的行车记录仪/电子显微镜方案

本文详细介绍了基于海思HI3516CV500开发板,结合LVGL图形库与海思MPP媒体处理平台,实现行车记录仪与电子显微镜方案的完整实战过程。内容涵盖从系统环境搭建、驱动配置到应用开发的全流程,重点解析了MPP视频流处理管道与LVGUI界面协同工作的核心机制,为嵌入式音视频开发提供了可复用的参考方案。

weixin_42126677的博客 163

js 之 原型 (prototype、constructor、__proto__、继承、原型链)

1、构造函数通过原型分配的函数是所有对象所共享的。2、js规定,,指向另一个对象,所以也称为。3、这个对象可以挂载函数,对象实例化不会多次创建原型上的函数,节约内存。4、:我们可以把那些不变的方法,直接定义在prototype对象上,这样所有的对象的实例就可以共享这些方法。5、构造函数和原型对象中的 this 都指向。实例:给数组扩展求最大值方法和求和方法1、定义一个方法,任何一个数组实例对象都可以使用2、自定义的方法写到 数组.prototype 身上。

qq_53165476的博客 642

LabVIEW事件结构避坑指南:为什么你的‘确定按钮’事件有时会失灵?

本文深入探讨了LabVIEW事件结构中'确定按钮'事件失灵的常见原因及解决方案。从事件队列机制到事件类型选择,详细分析了事件丢失的五大原因,包括事件处理耗时过长、事件类型选择不当等,并提供了优化登录界面案例的实用建议。掌握这些技巧可显著提升LabVIEW用户界面的响应可靠性。

weixin_42548888的博客 355

自定义控件三部曲视图篇(六)——RecyclerView系列之三自定义LayoutManager

前言:把握生命里的每一分钟,全力以赴我们心中的梦,不经历风雨 怎么见彩虹,没有人能随随便便成功 在第一篇中已经讲过,LayoutManager主要用于布局其中的Item,在LayoutManager中能够对每个Item的大小,位置进行更改,将它放在我们想要的位置,在很多优秀的效果中,都是通过自定义LayoutManager来实现的,比如: 可以看到这些效果都非常棒,通过这一节的学习,大...

启舰 1万+

prototype原型对象-constructor构造器-包装对象

prototype原型对象-constructor构造器-包装对象

Black_Straight的博客 698

STM32F407 UART4串口DMA收发实战:告别频繁中断,用空闲中断+DMA搞定不定长数据

本文详细介绍了STM32F407 UART4串口结合DMA和空闲中断实现高效不定长数据收发的实战方案。通过DMA硬件级数据搬运和空闲中断智能帧检测,显著降低CPU占用率,提升通信效率,适用于工业传感器数据采集和智能设备通信场景。

weixin_42631411的博客 156

什么是对象原型,什么是原型对象,什么是constructor,什么是原型链,详细解析

原型对象 : prototype 概念:原型对象是构造函数上的一个属性,用来创建公共的方法 原型对象怎么使用? 如何使用原型对象设置公共方法? //语法: 构造函数.prototype.方法名 = function() {} function Student(uname) { this.uname = uname } // 设置公共方法 Student.prototype.eat = function () { ...

super帅的博客 2919

23种设计模式-代理(Proxy)设计模式

软考中级-软件设计师 代理设计模式

片言可决讼,半纸能缚龙 1784

【医学图像处理】X-ray成像之X射线的产生

【医学图像处理】X-ray成像之X射线的产生 概述 电流流过钨丝,并将其加热。 随着加热,增加的能量使电子能够通过热电子发射从灯丝中释放出来。 电子被吸引到带正电的阳极,并以由管电位(电压)确定的最大能量撞击钨靶。 当电子轰击目标时,它们通过轫致辐射和特有的相互作用将能量转换为热量(99%)和X射线光子(1%)。 X射线光子以一束能量(X射线光谱)从光束中释放出来,构成X射线图像形成的基础。 设备 阴极 灯丝 用细的(0.2毫米)钨丝制成,因为钨: 原子序数高(A 184,Z 74) 是良好的热

ZhangPY的专栏 2359

【JavaScript】原型对象中的 constructor 属性详解

在 JavaScript 中,每个对象都与一个原型对象相关联。这个原型对象包含了该对象的共有方法和属性。当我们调用一个对象的某个属性或方法时,JavaScript 引擎会首先在该对象自身查找。如果找不到,就会沿着原型链查找,直到找到为止。是 JavaScript 中所有对象的一个重要属性,通常指向创建该对象的构造函数。也就是说,通过某个构造函数创建的对象,其属性指向这个构造函数本身。// 输出:function Person(name) { ... }在这个例子中,person1对象是通过。

lph159的博客 4152

游戏引擎定制化:大厂如何玩转性能极限(大白话生动有趣版)

游戏大厂如何深度定制游戏引擎?本文系统解析了商业引擎的局限性及大厂定制化的核心诉求。主要内容包括: 大厂定制引擎的根本原因:性能瓶颈、差异化需求、自有生态整合等 主流引擎的优劣势对比及适用场景 定制化重点领域:渲染管线优化、物理系统重构、网络架构改造等 全流程定制方案:从需求分析到模块重构再到工具链开发 典型案例:如腾讯CF手游的渲染优化、原神的热更新系统等 文章指出,顶级游戏产品必须对引擎核心模块动刀,通过深度定制实现性能突破和创新功能开发。同时提供了风险规避建议和技术演进趋势,为游戏开发者提供了宝贵的实

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 635

JavaScript进阶知识复习3

了解构造函数原型对象的语法特征,掌握 JavaScript 中面向对象编程的实现方式,基于面向对象编程思想实现 DOM 操作的封装。

2401_85837579的博客 883

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

构造函数、原型、继承原来这么简单?来吧,深入浅出

构造函数 小编上篇博客中介绍到的通过关键字class方式定义类,然后根据类再创建对象的方式,是ES6中语法,现在很多浏览器对ES6的支持还不是很好,所以也要学习通过构造函数(构建函数)的方式创建对象 问?既然浏览器对ES6的支持不是很好,是不是编写代码时不要使用ES6语法呢?(看完这篇文章你就有答案了) 1.构造函数和原型 1.1对象的三种创建方式–复习 字面量方式 var obj = {}; new关键字 var obj = new Object(); 构造函数方式 function Pe

商务合作欢迎私信我 3万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【07】JavaScript:15-静态成员和实例成员、constructor构造函数、构造函数原型prototype、对象原型、原型链、继承、ES5新增方法

文章目录JavaScript高级第02天笔记1.构造函数和原型1.1对象的三种创建方式--复习1.2静态成员和实例成员1.2.1实例成员1.2.2静态成员1.3构造函数的问题1.4构造函数原型prototype1.5对象原型1.6constructor构造函数1.7原型链1.8构造函数实例和原型对象三角关系1.9原型链和成员的查找机制1.10原型对象中this指向1.11通过原型为数组扩展内置方法2.继承2.1call()2.2子构造函数继承父构造函数中的属性2.3借用原型对象继承方法3.ES5新增方法3.

忘尘丶莫负的博客 1243

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

JavaScript进阶篇——第七章 原型与构造函数核心知识

本文系统讲解了JavaScript构造函数与原型机制。要点包括:1)构造函数封装实例属性和方法,但会造成方法重复创建;2)通过prototype原型对象实现方法共享,节约内存;3)constructor属性保持原型与构造函数的关联;4)proto__形成原型链,实现方法查找机制;5)完整原型链结构为实例→构造函数原型→Object原型→null。最佳实践是将方法定义在原型上、属性放在构造函数中,避免直接使用__proto,重写原型时需修复constructor指向。原型系统通过三大关系(构造函数-原型-实例

2403_88453964的博客 735

最详尽的 JS 原型、js原型链终极详解(第一篇)

一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的。分为**普通对象和函数对象,**Object 、Function 是 JS 自带的函数对象。下面举例说明 var o1 = {}; var o2 =new Object(); var o3 = new f1(); function f1(){}; var f2 = function(){}; var f3 = new Function('str','console.log(str)'); console.log(ty

shalDream的博客 2440

JavaScript进阶之面向对象、构造函数和原型

面向对象 这就不用多说了吧,Java中都学过。 ES6中的类和对象 创建类 类constructor构造函数 constructor()方法是类的构造函数(默认方法),用于传递参数,返回实例对象,通过new命令生成对象实例时,自动调用该方法。如果没有显示定义,类内部会自动给我们创建一个constructor(),就是无参构造器。 注意点: 1、通过class关键字来创建类,类名我们习惯性首字母大写 2、类里面有个constructor函数,可以接收传递过来的参数,同时返回实例对象 3、construc

qq_53324833的博客 1264

JavaScript高级 - 5 - 构造函数和原型

JavaScript高级 - 5 - 构造函数和原型1. 构造函数和原型1.1 对象的三种创建方式--复习1.2 静态成员和实例成员1.2.1 实例成员1.2.2 静态成员1.3 构造函数的问题1.4 构造函数原型 prototype1.5 对象原型1.6 constructor 构造函数1.7 原型链1.8 构造函数实例和原型对象三角关系1.9 原型对象中this指向1.10 通过原型为数组扩展内置方法2. 继承2.1 call()2.2 使用call函数继承父构造函数中的属性2.3 借用原型对象继承父构

来杯卡布奇诺的博客 313

JS第二天、原型、原型链、正则

构造函数的prototype 就是原型 专门保存所有子对象共有属性和方法的对象一个对象的原型就是它的构造函数的prototype属性的值。prototype是哪来的?所有的函数都有一个prototype属性当函数被创建的时候,prototype属性会自动创建和初始化构造函数的prototype属性的默认值是一个对象,这个对象只带有一个属性,constructor。对象在被创建的时候,原型就定下来了,那么其原型链也就确定下来了原型链对象有原型对象,原型对象也是对象,所以,

wk964269669的博客 1330

JavaScript高级02——构造函数和原型

1.构造函数和原型 1.1对象的三种创建方式--复习 1. 字面量方式 var obj = {}; 2. new关键字 var obj = new Object(); 3. 构造函数方式 function Person(name,age){ this.name = name; this.age = age; } var obj = new Person('zs',12); 1.2静态成员和实例成员 1.2.1实例成员 实例成员就是构造函数内部通过this添加的成员 如下列代码中un

小白的学习路 201

JavaScript-构造函数和原型-继承-ES5新增方法-建议收藏

JavaScript高级 1.构造函数和原型 1.1对象的三种创建方式–复习 字面量方式 var obj = {}; new关键字 var obj = new Object(); 构造函数方式 function Person(name,age){ this.name = name; this.age = age; } var obj = new Person('zs',12...

解启超 380

JS 原型与原型链详解 (深度学习)

原型:每个js对象(除null)创建的时候,都会与之关联另一个对象,这个对象就是我们说的原型,每一个对象都会从原型中“继承”属性。 原型链:将原型的实例赋值给另一个对象,另一个对象再赋值给其他的对象,在实际的代码中对对象不同的赋值,就会形成一条原型链。

qq_279364752的博客 694

JS高级(2)构造函数和原型

1.构造函数和原型 1.1.对象的三种创建方式 — 复习 1.字面量方式 var obj = {} 2.new 关键字 var obj = new Object() 3.构造函数方式 function Person(name,age){ this.name = name this.age = age } var obj = new Person('Dw',12) 1.2.静态成...

qq_41523392的博客 161

js原型和原型链_最详尽的 JS 原型与原型链终极详解

来自:简书,作者:Yi罐可乐链接:https://www.jianshu.com/p/dee9f8b14771一. 普通对象与函数对象JavaScript 中,万物皆对象!但对象也是有区别的。分为普通对象和函数对象,Object 、Function 是 JS 自带的函数对象。下面举例说明varo1={};varo2=newObject();varo3=newf1()...

weixin_39524574的博客 142
上一篇: 【复习】javascript 成员
下一篇: 【复习】javascript this的指向
谭CV
博客等级 码龄9年 73粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值