最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript中一个比较难理解的概念--原型

来源:动视网 责编:小采 时间:2020-11-27 20:16:32
文档

JavaScript中一个比较难理解的概念--原型

JavaScript中一个比较难理解的概念--原型:原型是JavaScript中一个比较难理解的概念,原型相关的属性也比较多,对象有prototype属性,函数对象有prototype属性,原型对象有constructor属性。一、初识原型在JavaScript中,原型也是一个对象,通过原型可以实现对象的属性继承,JavaSc
推荐度:
导读JavaScript中一个比较难理解的概念--原型:原型是JavaScript中一个比较难理解的概念,原型相关的属性也比较多,对象有prototype属性,函数对象有prototype属性,原型对象有constructor属性。一、初识原型在JavaScript中,原型也是一个对象,通过原型可以实现对象的属性继承,JavaSc


原型是JavaScript中一个比较难理解的概念,原型相关的属性也比较多,对象有”prototype”属性,函数对象有”prototype”属性,原型对象有”constructor”属性。

一、初识原型
在JavaScript中,原型也是一个对象,通过原型可以实现对象的属性继承,JavaScript的对象中都包含了一个”[[Prototype]]”内部属性,这个属性所对应的就是该对象的原型。
“[[Prototype]]”作为对象的内部属性,是不能被直接访问的。所以为了方便查看一个对象的原型,Firefox和Chrome中提供了__proto__这个非标准(不是所有浏览器都支持)的访问器(ECMA引入了标准对象原型访问器”Object.getPrototype(object)”)。在JavaScript的原型对象中,还包含一个”constructor”属性,这个属性对应创建所有指向该原型的实例的构造函数

二、规则
在JavaScript中,每个函数 都有一个prototype属性,当一个函数被用作构造函数来创建实例时,这个函数的prototype属性值会被作为原型赋值给所有对象实例(也就是设置 实例的`__proto__`属性),也就是说,所有实例的原型引用的是函数的prototype属性。(****`只有函数对象才会有这个属性!`****)

new 的过程分为三步

?

var p = new Person('张三',20);

1. var p={}; 初始化一个对象p。
2. p._proto_=Person.prototype;,将对象p的 __proto__ 属性设置为 Person.prototype
3. Person.call(p,”张三”,20);调用构造函数Person来初始化p。关于call/apply使用

举个例子: 有如下场景Man extends Person extends Object var a = new Man(); a的原型就是Man.prototype Man.prototype也是一个对象,那么它也有一个指针指向它自己的原型,那就是Person.prototype 同理,Person.prototype的原型就是Object.prototype Object.prototype也是对象,同理,只不过它的原型为null,那么也就到了原型链的末端 a的原型链路如下图 记住一点:对象的原型就是它的构造函数的原型,照样拿上图的a对象来举例的话,也就是:a.__proto__ === Man.prototype

文档

JavaScript中一个比较难理解的概念--原型

JavaScript中一个比较难理解的概念--原型:原型是JavaScript中一个比较难理解的概念,原型相关的属性也比较多,对象有prototype属性,函数对象有prototype属性,原型对象有constructor属性。一、初识原型在JavaScript中,原型也是一个对象,通过原型可以实现对象的属性继承,JavaSc
推荐度:
标签: js 理解 javascript
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top