深入理解JavaScript原型和原型链

S7-1200控制S120变频器 ②:硬件目录下,添加实物S120设备进行组态(其它现场设备--PROFINET IO--DRIVES......②:双击S120进行IP地址和设备名称设置(注:此处要与STATER软件设置S120一致)M10.0接通时,电机开始运行,M10.0断开,电机停止,调试完成。①:将S7-1200与S120进行通讯连线。④:STATER软件下设置与组态一致的报文。①:点击添加新设备,按实物进行设备组态。②:打开OB1,编写启动停止程序。①:查看S120报文地址。②:模块下添加DO矢量。③:子模块下添加报文。 阅读详情

  在JavaScript中原型和原型链是很抽象的概念,对于大多数人也是最难理解的一部分,掌握原型和原型链的本质是JavaScript进阶的重要一环。分享一下我对JavaScript原型和原型链的理解。

一、 函数对象

JavaScript 中,万物皆对象。但对象也是有区别的,分为:普通对象和函数对象,Object 、Function 是 JS 自带的函数对象。

var myNewObject1 = {};//myNewObject1为普通对象
        var myNewObject2 = new Object();//myNewObject2为普通对象
        var myNewObject3 = new fun1();//myNewObject3为普通对象

        function fun1(){};//fun1为函数对象
        var fun2 = function(){};//fun2为函数对象
        var fun3 = Function('str','console.log(str)');//fun3为函数对象

        console.log(typeof Object);//function
        console.log(typeof Function)//function

        console.log(typeof fun1);//function
        console.log(typeof fun2);//function
        console.log(typeof fun3);//function

        console.log(typeof myNewObject1);//object
        console.log(typeof myNewObject2);//object
        console.log(typeof myNewObject3);//object

二、prototype和__proto__的区别

prototype&&proto
2.1 prototype
定义:函数才有的属性

2.2 __proto__
定义:每个对象都有的属性,但__proto__ 不是一个规范属性,只是部分浏览器实现了此属性,对应的标准属性[[Prototype]]

注:大多数情况下__proto__ 可以理解为“构造器的原型”

__proto__ === constructor.prototype
(如果一个对象是通过Object.create函数构造出来的,.那其proto就不一定是.constructor.prototype了)

var m = {};
console.log(m.prototype);  //undefined
console.log(m.__proto__);  //Object {}

var n = function(){}
console.log(n.prototype);  //n {}
console.log(n.__proto__);  //function() {}

三、 原型和原型链

3.1 原型
一个对象,其他对象可以通过它实现属性继。

3.2 原型链
__proto__ 是任何对象都有的属性,所以会形成一条__proto__ 连接起来的链条,递归访问__proto__ 必须最终到头,并且值为NULL。

自己是由自己创建的,好像不是很符合逻辑。但仔细想想,现实世界也类似的情形,正如《道德经》里所说“无,名天地之始”。

当js引擎查找对象的属性时,先查找对象本身是否存在该属性,如果不存在,会在原型链上查找,而不会查找自身的prototype

var M = function(){};
var m = new M();
console.log(m.__proto__); //M {}(即构造器function M 的原型对象)
console.log(m.__proto__.__proto__); //Object {}(即构造器function Object 的原型对象)
console.log(m.__proto__.__proto__.__proto__); //null

总结

每个对象都有 proto 属性,但只有函数对象才有 prototype 属性

SAP_SD模块_SAP 消息号VF501(科目确定期间出错) 摘要: SAP SD模块中执行VF02销售开票时出现“科目确定期间出错”(VF501)问题,主要原因是系统无法找到匹配的总账科目。解决方案包括:检查物料主数据和客户主数据中的科目分配组是否维护,核对发票中的对应字段,并通过VKOA事务代码分析科目确定逻辑。若定价过程中配置的科目代码(如Z01)未在VKOA中完整映射(如缺少H1+S5+Z01组合),则会导致内部价格无法关联总账科目。需在SPRO路径下完善科目代码分配配置,确保定价类型与科目代码匹配。本文提供了详细的排查步骤和配置方法,帮助解决开票过账错误。 阅读详情

相关推荐

工业金属表面缺陷检测:4种光学成像方案(明/暗/漫/背光)选型与实测对比

本文深入探讨工业金属表面缺陷检测中的4种光学成像方案(明/暗/漫/背光),详细解析其物理原理、适用场景及实测效果。通过对比不同照明方案在铝合金轮毂、不锈钢餐具等实际工业场景中的表现,提供科学的选型决策树,帮助提升缺陷检出率至99%以上,为计算机视觉在工业质检领域的应用提供实用指南。

weixin_33624741的博客 387

理解JavaScript原型、原型链 6题,面试官对你惺惺相惜、情不自禁!

说明: 在JavaScript中,对象都有__proto__属性(隐式原型),指向构造该对象的构造函数的原型。 而函数Function比较特殊,它除了和其他对象一样有__proto__属性,还有自己特有的属性----prototype称之为原型对象,原型对象有一个constructor属性,该属性指回该函数。 经典图: 接下来是我整理的几个题 题目1: function F() { this.a = 1; } var obj = new F(); console.log(o...

编程界明世隐的博客 6232

模型优化系列——模型剪枝/量化概述

模型优化目的:通过减少模型大小,提高推理速度等使模型成功部署在各个硬件中并实时有效运作。

qq_61210574的博客 1293

【面试总结】,理解JavaScript原型、原型链 6题,前端技术篇

框架原理真的深入某一部分具体的代码和实现方式时,要多注意到细节,不要只能写出一个框架。算法方面很薄弱的,最好多刷一刷,不然影响你的工资和成功率😯在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!一个人可以走的很快,但一群人才能走的更远。

m0_57473261的博客 1204

threejs开发可视化数字城市效果

theme: condensed-night-purple 灵感图 现在随着城市的发展,越来越多的智慧摄像头,都被互联网公司布到城市的各个角落,举一个例子,一个大楼上上下下都被布置了智能摄像头,用于监控火势,人员进出,工装工牌佩戴等监控,这时候为了美化项目,大公司都会将城市的区域作为对象,进行3d可视化交互,接下来的内容,就是基于以上元素,开发的一款城市数据可视化的demo,包含楼宇特...

weixin_41770018的博客 1579

医疗设备安规入门:一张图搞懂BF型设备的MOOP/MOPP绝缘路径(附GB 9706.1附录解析)

本文深入解析了BF型医疗设备的MOOP/MOPP绝缘路径设计,结合GB 9706.1标准附录J的实战应用,帮助工程师快速掌握医疗设备安规要点。通过典型绝缘路径图分析,详细对比了MOOP与MOPP的防护差异,并提供了海拔修正、漏电流测试等关键设计指南,助力医疗设备安全合规。

weixin_30633405的博客 381

【react+ts】找不到less类型,Cannot find module ‘./xxx.module.less‘ or its corresponding type declarations

问题描述 Cannot find module ‘./index.module.less’ or its corresponding type declarations 找不到less后缀名的类型 解决办法 在src目录下创建类型声明文件react-app-env.d.ts,并且声明less类型 内容如下 declare module '*.module.less' { const classes: { readonly [key: string]: string }; export de

我的开源项目:https://gitee.com/derekgo/vue-cms_xg 6041

75、CAN总线收发器共模范围扩展与抗干扰芯片选型

摘要:本文探讨了CAN总线收发器共模范围扩展与抗干扰芯片选型的关键问题。作者通过风电场的实际案例,指出共模电压超标会导致总线故障甚至芯片损坏。文章分析了不同芯片(如SN65HVD1050、TJA1043等)的共模范围特性,并提供了电路设计建议,包括正确使用共模扼流圈和终端电阻。最后强调选型时要结合实际工况,在共模范围、功耗、速度和成本之间取得平衡,普通工业现场建议选择正负36V共模范围的芯片。

2401_88858637的博客 52

这些js原型及原型链面试题你能做对几道

console . log('我爱唱歌');//我爱唱歌 stu2 . sing();//我爱唱歌 console . log(stu1 . sing === stu2 . sing);//false很明显,stu1 和 stu2 指向的不是一个地方。所以 在构造函数上通过this来添加方法的方式来生成实例,每次生成实例,都是新开辟一个内存空间存方法。这样会导致内存的极大浪费,从而影响性能。公共属性定义到构造函数里面,公共方法我们放到原型对象身上。

loveX001的博客 2194

【GameFramework框架内置模块】1、全局配置(Config)

这是GameFramework框架内置模块的第一篇,全局配置Config,讲解这些模块的时候会尽量的涉及介绍、为什么使用、如何使用、代码分析这几块,让大家可以知其然,也知其所以然。全局配置表,存储了一些游戏中使用的全局的参数配置,比如玩家的初始速度、游戏初始音量等。全局配置表的结构跟DataTable结构类似,也是列行+键值对,只是没有ID这一列,因为全局配置也不需要用ID去查询, 是直接使用key值进行查询。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 5881

地平线J6的基础简介

地平线J6M芯片:面向中阶辅助驾驶市场的高性价比芯片

weixin_43084908的博客 4437

面试题 - 原型及原型链

一. [[protoType]] 1 - [[prototype]]属性 什么是[[Prototype]]属性 JavaScript中每一个对象都有一个内置的[[prototype]]属性,这个属性指向对其他对象的引用。大多数情况下这个对象的值都不为空。 原型链的尽头 - Object.prototype 当执行 [[Get]] 操作时,如果当前对象没有查找的属性,则会继续向上查找原型链,直到查找到原型链的尽头 Object.prototype,如果依旧没有则返回 undefined 。所以自定义的

bug处理进行时 1843

时间序列—显著相关性和滞后性分析_python

本文讲述了两个时间序列(信号)的相关性分析,可以利用相关性分析进行特征筛选。此外本文还讲了怎么判断时间序列的滞后性的方法。

qq_34229228的博客 2万+

js原型和原型链_「前端知识体系-JS相关」深入理解JavaScript原型和原型链

1.Javascript继承1.1 原型链继承 function Parent() { this.name = 'zhangsan'; this.children = ['A', 'B', 'C']; } Parent.prototype.getName = function() { console.log(this.name); } function Child() { } Child.pr...

weixin_39851872的博客 142

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【JavaScript知识总结二】全方位从5个方面深入理解JS中的原型和原型链

1. 所有的引用类型(数组,对象,函数),都是具有对象特性的,即可以自由扩展属性(除了null以外) // 1.引用类型可以扩展属性 var obj = {}; obj.a = 100; // 对象属性的扩展 var arr = []; arr.a = 100; // 数组属性的扩展 function fn() { ...

小牛itbull的博客 233

IEM模型,地表粗糙度模拟

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

深入理解 JavaScript 中的原型和原型链

JavaScript 中的原型和原型链是一个至关重要的概念,同时也是许多前端开发者不熟悉的知识点。在这篇文章中,我将深入讲解这些概念,并通过实例来帮助读者更好地理解它们。

weixin_42429220的博客 834

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

深入理解javascript原型和原型链

prototype(原型)下面的就是原型(也叫显式原型),它是一个对象,我们也称它为原型对象。Person.prototype.say = function () { // 通过原型添加方法// 原型对象say: ƒ(), // 原型上共享的方法,不会反复开辟存储空间,减少内存浪费。上面这个对象,就是大家常说的原型对象。

猫老板的豆 2202

前端【JS】,深入理解原型和原型链

对于原型和原型链,相信有很多伙伴都说的上来一些,但有具体讲不清楚。但面试的时候又经常会碰到面试官的死亡的追问,我们慢慢来梳理这方面的知识! 要理解原型和原型链的关系,我们首先需要了解几个概念;1、什么是构造函数?2、构造函数与普通函数有什么区别? 3、原型链的顶端是什么? 4、prototype、__proto__、constructor在什么对象下存在? OK 我们暂时带着这些疑问往...

weixin_40469000的博客 1666

前端面试必问——JS中的原型(prototype)、原型链和继承

原型、原型链与原型继承也是一个老生常谈的问题了,可以说js原型弄明白了,那么学习js就得了一种质的飞跃,今天我们就来看看这个在前端面试中的高频考题究竟是怎么一回事。 一、原型 要说原型,我画了上面那张图,它生动的表达了js中的构造函数、实例对象以及原型对象的关系: 每个对象都有_proto_属性,并且指向它的原型对象 每个构造函数都有它的prototype原型对象 prototype原型对象里的constructor指向它的构造函数 new一个构造函数会形成它的实例对象 如果光看文字.

cuckooii的博客 6907

深入理解JS—instanceof和原型链

又介绍一个老朋友——instanceof。对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/function,你不知道它到底是一个object对象,还是数组,还是new Number等等。这个时候就需要用到instanceof。例如:function Foo(){} var f1=new Foo

Cecilia 1万+

原型和原型链的理解_JavaScript深入理解之原型与原型链

来源 | http://cavszhouyou.top/写在前面原型和原型链一直都是 JavaScript 中很重要的概念,理解它们有助于我们理解预定义引用类型间的关系以及 JavaScript 中对象继承的实现机制,下面是我对原型和原型链的理解和总结。原型原型对象理解函数对象的 prototype 属性我们创建的每一个函数都有一个 prototype 属性,这个属性是一个指针,指向一个...

weixin_39974409的博客 71

JavaScript------原型、原型链

在js中,原型和原型链是一个很重要的知识点,只有理解了它,我们才能更深刻的理解js,在这里,我们将分成几个部分来逐步讲解。构造函数是使用了new关键字的函数,用来创建对象,所有函数都是Function()的实例原型对象是用来存放实例对象的公有属性和公有方法的一个公共对象,所有原型对象都是Object()的实例原型链又叫隐式原型链,是由__proto__属性串联起来,原型链的尽头是Object.prototype。

dd的博客 995

javascript中的原型和原型链

原型和原型链是js中的难点也是重点,明白了原型和原型链会让我们在后面不管是学习还是工作都会更加高效,并且原型和原型链会是面试中必不可少的话题。看完此篇文章一定会让你对原型,原型链有深刻全面的了解。 深入系列:深入javascript之作用域 深入系列:深入javascript之执行上下文   一,函数对象     ...

u013594477的专栏 204

【JS】JS基础--原型和原型链

JavaScript的原型和原型链是其面向对象编程的核心机制。原型(Prototype)是对象共享属性和方法的基础,每个对象(除null外)都有一个[[Prototype]]属性指向其原型。原型链通过__proto__串联对象,实现属性和方法的继承查找。构造函数通过prototype属性定义实例的原型,而__proto__指向对象的原型。ES6的class语法是原型继承的语法糖。关键概念包括原型链查找机制、Object.getPrototypeOf、instanceof和hasOwnProperty等工具方

取悦于己 1334

深入理解JavaScript中的原型和原型链

在JavaScript中,原型和原型链是实现对象继承和属性查找的重要机制。深入理解这些概念有助于更好地理解JavaScript的面向对象特性和工作原理。本文将介绍JavaScript中的原型和原型链,并解释它们在实际开发中的应用。JavaScript中的原型和原型链为对象提供了继承和属性查找的机制。通过原型链,我们可以实现对象之间的继承,共享属性和方法,并可以更灵活地组织和扩展代码。

革古鼎新绳锯木断 300

javascript的原型和原型链深入理解

原型和原型链的深入理解

m0_63689815的博客 216
上一篇: 2018腾讯微简历大赛记STAR法则剑指offer
下一篇: Python全栈数据工程师养成攻略
极客范儿
极客范儿 新星创作者: 游戏开发技术领域 新星创作者: 游戏开发技术领域 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄12年 1万+粉丝 341原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客范儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值