首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS原型原型

prototype就是调用构造函数所创建的实例对象的原型(proto)。js在创建对象的时候,都有一个叫做proto的属性,用于指向它的函数对象的原型对象prototype。...原型 每一个对象都可以有一个原型,这可原型还可以有它自己的原型,以此类推,就形成了原型。...查找一个对象的属性或方法的时候,如果这个对象没有这个属性或者方法,那就会在这个对象的原型对象中去找,以此类推,直到原型链结束。..._proto_ _proto_原型查询实际用到的,指向构造函数的原型对象,他对象独有的。对象._proto_ = 构造函数.prototype。 在js,万物皆是对象,函数也是对象。...3、构造函数的prototype指向原型对象,原型对象的constructor指向构造函数。 使用 prototype最主要的用法就是将属性暴露成公用的。

1.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

js原型原型

​一、原型 1、prototype和constructor 在js每个函数(非箭头函数,一般关于原型的有关知识我们都只考虑构造函数)都会拥有一个 prototype 属性,该属性值一个对象...__proto__) // true 二、原型 原型:《JavaScript高级程序设计》的描述:每个构造函数都有一个原型对象,如果该原型另一个类型的实例呢?...那就意味着这个原型本身有一个内部指针指向另一个原型,相应地另一个原型也有一个指针指向另一个构造函数。这样就在实例和原型之间构造了一条原型。这就是原型的基本构想。...原型的查找机制:实例对象上找不到指定属性,就从该原型对象上找,如果还是找不到就到该原型对象上的原型上去找,。...第一个参数:要设置其原型的对象;第二个参数:该对象的新原型(一个对象或 null)。

1.1K00

JS原型原型

原型原型 JavaScript有着七种基本类型String、Number、Boolean、Null、Undefined、Symbol、Object,前六种为基本数据类型,Object为引用类型。...值得注意的typeof (null)会返回Object,这是因为JS二进制前三位都为0的话会被判断为Object类型,null的二进制表示全0,自然前三位也是0,所以执行typeof时会返回Object...new Student(); console.log(stu1.from) // sdust console.log(stu2.from) // sdust __proto__ __proto__ 原型查询实际用到的...原型可以简单理解为将原型连成一条js每一次获取对象的属性都是一次查询过程,如果在自有属性找不到就会去原型对象查找,如果原型对象还查不到,就回去原型对象的原型查找,也就是按照原型查找,...直到查找到原型的顶端,也就是Object的原型

1.7K50

JS 原型

JS 原型 1. 原型原型的基础结论 1.1 函数与对象的关系 函数对象,对象都是通过函数创建的。 函数与对象并不是简单的包含与被包含的关系。...1.3 原型原型 原型:一个函数可以看成一个类,原型所有类都有的一个属性,原型的作用就是给这个类的一个对象都添加一个统一的方法。...1.4 JavaScript 里最顶层的两个概念 Function 最顶层的构造器 Function JavaScript 里最顶层的构造器,它构造了系统的所有对象,包括定义对象、系统内置对象、甚至包括它自己...__proto__ **前提结论:**在JavaScript,函数都是对象,对象就有隐藏的__proto__属性 「解释:」 Function最顶级的构造器,函数对象都是通过它构造的 「结论:」函数...基于原型的继承 JavaScript 对象有一个指向一个原型对象的

2.3K30

js原型

显示原型 1.每一个构造函数都有一个prototype属性,默认指向一个空Object对象(原型对象) function fun(){ } console.log(fun.prototype ) //{...) //true 5.构造函数与它的原型对象有一个相互引用的关系 6.原型对象上添加的方法用于实例对象上使用 隐式原型 每一个实例对象都有一个__proto__属性,称之为隐式原型 对象的隐式原型的值为其对应构造函数的显示原型的值...__proto__) Fn.prototype.test = function(){ console.log('test') } fn.test() 原型 对象属性的查找规则 原型本质上从隐式原型...test2,发现有直接调用test2 当执行fn.toString(),时,自身对象没有,接下来查找它构造函数的原型对象上是否有toString(),发现没有,接下来又继续沿着Fn原型对象的构造函数的原型对象上查找找到...toString() 当执行fn.test3()时,查找自身对象没有,它直接的构造函数对象的原型对象上也没有,接下来沿着Fn原型对象的构造函数的原型对象的构造函数的原型对象上查找,这里已经找到原型的尽头

2.1K20

JS进阶:原型原型

JS进阶:原型原型 image.png JavaScript除了基础数据类型外都是对象(引用类型)。...该原型对象也有一个自己的原型对象( __proto__ ) ,层层向上直到一个对象的原型对象为 null。根据定义,null 没有原型,并作为这个原型的最后一个环节。...这里dog2重写bark方法并没有对dog1造成影响,因为它重写bark方法的操作实际上为自己添加了一个新的方法使原型的bark方法被覆盖了,而并非直接修改了原型的方法。...//'haha~' dog2.bark() //'haha~' 这样看起来就没什么问题了,将实例中共有的属性放到原型对象,让所有实例共享这部分属性。...通过原型就可以在JavaScript实现继承,JavaScript的继承相当灵活,有多种继承的实现方法,这里只介绍一种最常用的继承方法也就是组合继承。

1.4K30

js原型原型解析

js原型原型 这几天闲了看了下js原型,以下内容为个人理解,如有错误,尽请指正。...首先,明确一点:js的对象分为普通对象和函数对象,一般我们自定义的可以被new的函数称作函数对象,另外js内置了譬如:Array、Date、Object、Function、Number、String、...,使用__proto__将所有对象联系起来,才形成了所谓的原型,举个栗子: function Person() {} const p1 = new Person() console.log(p1....__proto__ === null) // true, Object的原型由null"产生"的,null处于原型顶端 这个从根本上印证了道德经那句:道(null)生一,一生二,二生三,三生万物...__proto__ === p.constructor.prototype) // true 下一节的话讲下js的继承~

2K30

理解JS 原型

一直以来对于JavaScript 的原型的概念,始终有些东西有一种模糊感,最近刚好有时间就塌下心认真的把《JavaScript高级程序设计》相关内容认真读了一遍,也查看了很多网上很多资料,以前很多不明白的地方也渐渐明白了起来...但是你总不能说他们一间麦当劳吧?...#原型 原型简单用一句话概括就是: 原型就是 对象的__proto__所连接的状结构 为了方便我们理解原型,举一个简单的例子: function F(){ this.a = 1;...#补充 constructor 说一下我的经历,一开始理解原型时,一直在prototype、__proto__、constructor在这个三个属性绕来绕去。...null 既然对象都会继承自Object.prototype上面的方法,那它自己的原型又是什么呢。答案null Object.prototype.

1.7K10

JS原型温故

js,对于对象的理解很重要。 js的数据类型主要分为基本类型和引用类型。基本类型包括String、Number、Boolean、undefined、null。引用类型包括Object。...至于向数组添加属性和方法,在实际工作数组的方法使用的应该不少了吧,比如concat、slice之类的,所以结论只要是对象,js中都可以自由添加属性和方法。 现在我们明确知道,函数就是对象的一种。...所以结合上面几个图,可以形成这样一个结论: 在JS世界,null为开始,由null开始衍生出Object.prototype。Object.prototype的隐式原型指向null。...从上图可以看出一个关系,那就是js的各对象间都是通过原型来互相连接起来的,这个原型将所有对象链接在了一起,这就是为什么JS基于原型的面向对象编程语言,即使现在有es6 7有了class类,它本质上也是基于原型形成的语法糖而已...js实现的继承就是通过这条原型来工作的:在访问一个对象的某个属性时,先该对象的现有属性查找,如果没有,再沿着__proto__这种向上找,这就是原型

1.2K20

【深入理解JS核心技术】2. 什么原型

原型用于在现有对象的基础上构建新类型的对象。它类似于基于类的语言中的继承。...构造函数,原型,实例的关系: 每个构造函数都有一个原型对象,原型有一个属性指回构造函数,而实例有一个内部指针指向原型原型的基本思想:(如果原型另一个类型的实例?)原型当成实例。...第一种方式使用instanceof操作符,如果一个实例的原型中出现过相应的构造函数,则instanceof返回true。 确定关系的第二种方式使用 isPrototypeOf() 方法。...原型的每个原型都可以调用这个方法。...原型包含的引用值会在所有实例间共享,这也是为什么属性通常会在构造函数定义而不会在原型上的原因。

31810

JS的面向对象、原型原型、继承总结大全

什么对象 直接上《JavaScript高级教程》的截图 ?...补充: js说一切都是对象,不完全的,在js6种数据类型(Undefined,Null,Number,Boolean,String,Object),前五种基本数据类型,原始值类型,这些值在底层实现的...showName 这种构造函数模式和原型模式组合使用,基本上可以说是js面向对象开发的一种默认模式,介绍了以上这几种常用创建对象的方式, 还有其他不常用的模式就不介绍了,接下来想说的js中比较重要的继承...继承 什么原型 ECMA中继承的主要方法就是通过原型,主要是一个原型对象等于另一个类型的实例,由于实例内部含有一个指向构造函数的指针,这时候相当于重写了该原型对象,此时该原型对象就包含了一个指向另一个原型的指针...属性查找机制 js实例属性的查找,按照原型进行查找,先找实例本身有没有这个属性,如果没有就去查找查找实例的原型对象,也就是[[prototype]]属性指向的原型对象,一直查到Object.prototype

1.4K22

JS面试必问-JS原型原型

什么需要原型js万物皆对象,对象可以说是重中之重了。每一个对象都拥有自己的属性。但是在这个世界中有很多东西都是相似的,可以归为一类,他们有共同的方法和属性。不可能让每一个对象都定义一个属性吧。...所以,在js怎么才能让多个对象共享一个或多个方法呢?原型的出现就是为了解决这个问题。...原型对象有一个constructor属性,默认指向对应的构造函数。 什么原型 根据字面意思我们可以这样理解,就是将原型连成一条。...我们上面讲过,js每一次获取对象的属性都是一次查询过程,如果在自有属性找不到就会去原型对象查找,如果原型对象还查不到,就回去原型对象的原型查找,也就是按照原型查找,直到查找到原型的顶端,也就是...在js,对象都有__proto__属性,一般这个被称为隐式的原型,该隐式原型指向构造该对象的构造函数的原型

1.4K20

彻底搞懂JS原型原型

说到JavaScript的原型原型,相关文章已有不少,但是大都晦涩难懂。本文将换一个角度出发,先理解原型原型什么,有什么作用,再去分析那些令人头疼的关系。...也就是说 数组对象、函数对象、正则是对象、对象还是对象。图片二、原型原型什么上面我们说到对象就是属性(property)的集合,有人可能要问不是还有方法吗?...现在我们已经初步理解了原型原型,到现在大家明白为什么数组都可以使用push、slice等方法,函数可以使用call、bind等方法了吧,因为在它们的原型上找到了对应的方法。...参考视频讲解:进入学习五、原型顶层原型之所以叫原型,而不叫原型环,说明它是有始有终的,那么原型的顶层是什么呢?...我们来看一下MDN上对于instanceof运算符的描述:instanceof运算符用于测试构造函数的prototype属性是否出现在对象的原型的任何位置也就是说instanceof操作符左边一个对象

1.3K20

彻底弄懂JS原型原型

说到JavaScript的原型原型,相关文章已有不少,但是大都晦涩难懂。本文将换一个角度出发,先理解原型原型什么,有什么作用,再去分析那些令人头疼的关系。...也就是说 数组对象、函数对象、正则是对象、对象还是对象。图片二、原型原型什么上面我们说到对象就是属性(property)的集合,有人可能要问不是还有方法吗?...现在我们已经初步理解了原型原型,到现在大家明白为什么数组都可以使用push、slice等方法,函数可以使用call、bind等方法了吧,因为在它们的原型上找到了对应的方法。...五、原型顶层原型之所以叫原型,而不叫原型环,说明它是有始有终的,那么原型的顶层是什么呢?拿我们的person对象来看,它的原型对象,很简单// 1. person的原型对象person....我们来看一下MDN上对于instanceof运算符的描述:instanceof运算符用于测试构造函数的prototype属性是否出现在对象的原型的任何位置也就是说instanceof操作符左边一个对象

1.1K40
领券