js原型和原型链

EndNote全文检索实战:如何快速配置学校图书馆资源并精准查找文献 本文详细介绍了EndNote全文检索功能的实战配置方法,核心在于通过正确设置OpenURL链接解析器,无缝对接学校图书馆资源,实现一键精准获取文献全文。文章提供了从理解机制、四步配置法到进阶技巧的完整指南,帮助科研人员高效管理海量PDF,构建个人知识体系,大幅提升文献调研与写作效率。 阅读详情

一.普通对象与函数对象

JavaScript 中万物皆对象!但对象也是有区别的。分为普通对象和函数对象。

function f1(){};
 var f2 = function(){};
 var f3 = new Function();

 var o1 = {};
 var o2 =new Object();
 var o3= new f1();

 console.log(typeof o1); //object
 console.log(typeof o2); //object
 console.log(typeof o3); //object
 console.log(typeof f1); //function
 console.log(typeof f2); //function
 console.log(typeof f3); //function 

以上,o1,o2,o3为普通对象;f1,f2,f3为函数对象。o1,o2是创建对象的两种常见形式,那为什么o3不是函数对象呢?因为它不是由new Function()创建的。

注:var o4 = Object(); console.log(typeof o4);//object
这类内置对象使用new或者直接调用方式都能构建出一个新的数据类型。但是构建出来的数据有区别的。

console.log(typeof Function); //function
console.log(typeof Object); //function
console.log(typeof Number); //function
console.log(typeof Boolean); //function
console.log(typeof String); //function
console.log(typeof Array); //function
console.log(typeof RegExp); //function
console.log(typeof Error); //function
console.log(typeof Date); //function

javascript中需要通过new来创建的内置对象也都是函数对象,其本质也是通过new Function()创建的。

二. 原型对象

在JavaScript 中,每当定义一个对象(函数)时候,对象中都会包含一些预定义的属性。其中函数对象的一个属性就是原型对象 prototype。每个函数对象都有 prototype(Function.prototype除外)

除了Function.prototype,其他常见原型对象都是普通对象。

    console.log(typeof Object.prototype);   // object
    console.log(typeof Number.prototype);   // object
    console.log(typeof Boolean.prototype);  // object
    console.log(typeof String.prototype);   // object
    console.log(typeof Array.prototype);    // object
    console.log(typeof RegExp.prototype);  // object
    console.log(typeof Error.prototype);    // object
    console.log(typeof Date.prototype);     // object
    console.log(typeof Function.prototype); // function

下面来看看我们自定义的函数对象的prototype

    function f(){};
    console.log(f.prototype);//f()
    console.log(typeof f.prototype); 

结果是
这里写图片描述

从结果中我们可以看出f.prototype是一个原型对象。其中constructor返回创建此对象的函数。

下面来说一下prototype的作用:共用
如果了解工厂模式,那么你就很清楚prototype的好处,它能使公用的方法或者属性在内存中存在一份 ,从而提高性能。

function Animal(name){
    this.name = name;
    this.showName = function(){
        console.log( this.name );
    };
}
var a1 = new Animal('bobo');
var a2 = new Animal('qiqi');

console.log(a1.showName);
console.log(a2.showName);
console.log( a1.showName == a2.showName );  //false

这里写图片描述

看似是同一个函数,但实际上是分别在a1和a2指向的内存地址中。但由于函数是一样的,没有必要重复创建,所以prototype就派上用场啦。
将上面代码改成:

function Animal(name){
    this.name = name;
}
Animal.prototype.showName = function(){
    console.log( this.name );
};
var a1 = new Animal('bobo');
var a2 = new Animal('qiqi');

console.log(a1.showName);
console.log(a2.showName);
console.log( a1.showName == a2.showName );  //true

这里写图片描述

三.原型链

javascript在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__的内置属性,用于指向创建它的函数对象的原型对象prototype。以上面的例子来说

    console.log( a1.__proto__ == Animal.prototype);             //true
    console.log(Animal.prototype.__proto__ == Object.prototype);//true
    console.log(Object.prototype.__proto__ == null);            //true

这里写图片描述

总结:
1.对象均有属性__proto__,指向该对象的构造函数的原型对象。
2.函数对象除了有属性__proto__,还有属性prototype,prototype指向该方法的原型对象。

本文参考http://www.108js.com/article/article1/10201.html?id=1092(侵立删)

vscode的launch:program ‘‘ does not exist 如图 一般是由于launch.json文件没有配置好的缘故。在右下角的ADD configuration如选第二个登录: 看到program这一栏,这一栏很重要,一般是选择你CMakelist,编译出来的可执行文件 看我CMakelist, 我生成的可执行文件是test_,所以路径可以这样输入: 我在之前cmake的时候已经有了test_这个文件了 然后就可以运... 阅读详情

相关推荐

头歌 操作系统 课堂练习2.1:外部中断 第2关:第一次时钟中断

将答案0x796c输入到workspace/mushixun/恢复点的地址.txt中的括号里即可,随后使用kill命令防止对第三关的环境造成影响。

Yinfrey的博客 6097

JavaScript原型和原型链

知识点引用类型都是对象,每个对象都有原型对象。对象都是由构造函数创建,对象的__proto__属性指向其原型对象,构造函数的prototype属性指向其创建的对象实例的原型对 象,所以对象的__proto__属性等于创建它的构造函数的prototype属性。所有通过字面量表示法创建的普通对象的构造函数为Object所有原型对象都是普通对象,构造函数为Object所有函数的构造函数是Function没有原型对象// f1、f2都是通过new Foo()创建的对象,构造函数为Foo,所以有。

Jas3000的博客 1165

手把手教你用OpenCompass评估Qwen1.5-1.8B模型(含数据集配置详解)

本文提供了使用OpenCompass评估Qwen1.5-1.8B-Chat模型的详细实战教程。内容涵盖从创建独立Python环境、下载模型与核心数据集,到编写配置文件、执行评测命令及解读结果的完整流程。重点解析了模型与数据集的配置细节,并分享了性能调优与常见问题排查方法,旨在帮助开发者快速上手系统化的模型评估。

weixin_29228781的博客 138

对于js的原型和原型链的理解

一、原型与原型链 JavaScript是一门基于原型的语言,在软件设计模式中,有一种模式叫做原型模式,JavaScript正是利用这种模式而被创建出来 原型模式是用于创建重复的对象,同时又能保证性能,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。原型模式的目的是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新...

浮生离梦的博客 4万+

4.DJI-PSDK云台x-port控制:

使用PSDK 的“云台控制”功能,开发者需要先设计负载设备的云台并开发出控制云台的程序,将云台的控制函数注册到PSDK 指定的接口后,用户通过使用DJI Pilot、基于MSDK 开发的移动端App 及遥控器即可控制基于PSDK 开发的具有云台功能的负载设备,同时获得负载设备的相关信息,如姿态等。云台的姿态如 图2.云台姿态 所示,根据用户的控制指令,云台能够调整姿态;云台的关节如 图1.云台关节 所示,云台关节是云台上带动负载设备转动的结构件:云台电机,云台关节角即云台电机转动的角度。

哒宰的博客 858

YOLOv8 更换损失函数DIoU、EIoU、GIoU...Inner-IoU...

介绍了一些损失函数,并将其应用到yolov8训练中

分享一些自己改进代码的实例 888

【一天时间|JavaScript基础】原型和原型链

本期介绍原型、原型链和 class。包括 class ,继承,原型,原型链,instanceof。原型是 “JS 三座大山” 之一,原型和原型链也是必考知识点。

江拥羡橙的博客 2万+

信号与电源完整性5:轨道塌陷噪声/电源轨道噪声分析及降低解决方案

经过上一节关于串扰的分析,我们已经清楚,噪声问题不仅仅来源于信号网络;电源和地网络所产生的噪声,被反馈到其所在的元器件和信号网络时,其破坏力也是巨大的;本节所讨论的轨道塌陷噪声就是一个典型的实例。在经过电源的地网络的电流发生改变时,在电源和地之间的阻抗上将产生一个压降;由于该压降的产生,用电元件的电压将直接被拉低,甚至可能对电路产生功能性的错误。接下来硬小二将详细的分析电源轨道噪声和降低其的解决方法。...

fydar的博客 2244

JavaScript什么是原型和原型链JS

从事前端这么久,发现原型和原型链一直都是云里雾里,网上看了好多文章、博客也还是不怎么明朗,相信被它困扰的小伙伴,不在少数 以下是我总结的原型和原型链,个人认为是比较浅显易懂的: 一、首先大家在对JS原型进行解释的时候,会涉及两个概念:构造函数、原型对象 构造函数:通俗的一句话说,就是你在script标签里面声明的函数: function Person(params) { /**我就是构造函数*/ } 原型对象:当我们创建了一个函数A,浏览器就会在内存中创建一个对象B

Liberty_yes的博客 733

Python 爬虫实战:爬取豆瓣读书评论并分析

摘要:本文以豆瓣读书《活着》评论数据为例,详细讲解Python爬虫开发与文本分析全流程。首先通过requests库爬取评论数据,解决分页、反爬等问题;然后利用BeautifulSoup解析页面提取评论内容、评分等核心信息;最后结合jieba进行关键词提取、snownlp完成情感分析,并通过可视化展示结果。分析显示该书评分以5星为主(占比70%),正面评论达82%,核心关键词为"活着""余华""生命"。全文包含完整代码与详细解析,帮助读者掌握非结构化

2503_91057718的博客 1497

1.1、matlab:基于模板匹配的车牌识别

matlab:基于模板匹配的车牌识别

XU157303764的博客 2915

JavaScript高手之路:原型和原型链

原型和原型链是JavaScript进阶重要的概念,尤其在插件开发过程中是不能绕过的知识点,这篇文章就带你去抽丝剥茧的学习这一过程。在写博客过程中,我比较倾向和习惯从一个按例开始说起,以此为切入点一点点的进入正题,so,我们还是看看JavaScript内置对象Array来做一个数字排序得例子吧

张翠山的博客 7964

基于Python的CT骨料图像分割与STL批量导出完整指南

本文介绍了一套完整的Python解决方案,用于CT骨料图像的分割与STL导出。针对CT图像中颗粒粘连、噪声伪影等技术难点,提出基于分水岭算法的分割策略,结合距离变换与标记控制实现颗粒分离。内容包括环境配置、数据读取与预处理、Otsu阈值分割、分水岭算法实现、表面提取与STL导出等关键步骤。教程提供详细代码及解释,帮助读者从CT体数据出发,最终生成每个颗粒的三维网格文件,便于后续定量分析和数值模拟。

huanghm88的专栏 239

javascript中的原型和原型链,js什么是原型和原型链

简单来说,每一个JavaScript对象(null除外)在创建的时候就会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型"继承"属性GPT改写。例如:有这么一个对象obj,表示创建一个对象实例。什么是构造函数1.构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写2.构造函数和普通函数的区别在于:调用方式不一样。作用也不一样(构造函数用来新建实例对象)直接调用 person();b.构造函数需要使用new关键字来调用 new Person();

wenangou的博客 128

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

一文搞懂 js 原型和原型链

原型和原型链是JavaScript中与对象有关的重要概念,但是部分前端开发者却不太理解,也不清楚原型链有什么用处。其实,学过其他面对对象语言的同学应该了解,对象是由类生成的实例,类与类之间有继承的关系。在ES6之前,JavaScript中并没有class,实现类和继承的方法就是使用原型。在我个人看来,JS中类和原型链的设计和语法由于一些历史或包袱问题而不易用,也不易于理解。因此在ES6中推出了class相关的语法,和其他语言更接近,也更易用。ES6 class类。

我哎GIS博客 2583

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

带你搞懂JavaScript中的原型和原型链

原型和原型链是JavaScript中与对象有关的重要概念,但是部分前端开发者却不太理解,也不清楚原型链有什么用处。

Coding home - 漂流瓶jz 1268

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

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

【javascript】js面试题原型和原型链

js使用class实现继承,本质是执行结果:通俗解释:创建一个Person类,类里的所有方法可以看做为。创建Student类和Teacher类就会有显示原型和隐示原型,因为这两个类都了Person类,这两个类的。new出来的teacher和std的实例对象的显示原型就是自己的参数,隐示原型指向Teacher和Student类上的显示原型。因为Student和Teacher类继承了Person,所以自己的隐私原型上,就会往上一级找,直到对象类型为止(顶层).........

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

我对js原型和原型链的理解

我们知道在js中,万物皆对象,对象可以说是重中之重了。每一个对象都拥有自己的属性。但是在这个世界中有很多东西都是相似的,可以归为一类,他们有共同的方法和属性。不可能让每一个对象都定义一个属性吧。那样太消耗内存了。所以,在js中怎么才能让多个对象共享一个或多个方法呢?原型的出现就是为了解决这个问题。 在js中每个对象都有一个与它关联的对象,叫做原型对象。每一次获取对象属性都是一次查询过程,当在对象...

清风了了的博客 1万+

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

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

取悦于己 1334

如何理解JavaScript的原型和原型链?

之前有朋友问怎么去理解原型和原型链的问题。这个问题,在面试中,很多同学经常都会遇到。这里给大家讲讲,方便大家记忆。 JavaScript的特点 JavaScript是一门直译式脚本语言,是一种动态类型、基于原型的语言。 JavaScript的灵活性不亚于C++,你可以使用JavaScript尝试不同的程序设计范型。 比如类jQuery风格的函数式编程、基于过程的指令式编程、以及基于原型的面向对象编...

张飞鹏的博客 1022

带你理解JS原型和原型链

在与和我的后端朋友交流链表概念时,联想到了原型链。想到自己对原型链没什么了解,在参考一些文章和视频后(感谢网上的各位大佬!!!),带着自己的理解整理笔记如下,大家一起学习,最后还有原型链的应用场景引言大多面向对象的编程语言,比如java,都是通过类(class)实现对象的继承。JS的语言的继承不通过class,而是通过原型对象(prototype)实现,es6当中有类的继承,但是本质还是通过原型对象,为什么说继承可以减少资源的浪费呢,我们来看下面这个例子 可以看到,按照常理来说,不同实例对象的属性值不同

2302_80633106的博客 1641

JS原型和原型链

这周主要复习了JS高级相关的知识,但是还没复习完,下周把JS高级和ES6再复习复习。

2403_87892684的博客 988

JavaScript---原型和原型链

对象有__proto__属性(Object.create(null)除外),函数有__proto__属性,数组也有__proto__属性,只要是引用类型,就有__proto__属性,指向其原型只有函数有prototype属性,指向new操作符加调用该函数创建的对象实例的原型对象。

zheshiyangyang的博客 1388

javascript中的原型和原型链

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

u013594477的专栏 204

JavaScript原型和原型链精讲

原型和原型链精讲

太阳与星辰的博客 1463

关于JS的原型和原型链

文章摘要:本文探讨了JavaScript原型和原型链的核心概念。通过对比C++继承机制,解释了原型作为函数对象的特殊属性prototype,包含实例共享的属性和方法。原型链则是对象属性查找机制,通过__proto__属性沿原型链向上查找。文章详细区分了__proto__(实例属性)和prototype(构造函数属性)的区别,并提供了原型链路径的代码验证。

m0_50746196的博客 689
上一篇: DIV中position的5个属性值
下一篇: HTML5canvas时钟实例
Hi-ZhiWei
博客等级 码龄10年 3粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值