美文网首页前端开发前端Web前端之路
一分钟秒杀,js原型与原型链

一分钟秒杀,js原型与原型链

作者: 熊师傅 | 来源:发表于2017-10-10 17:34 被阅读186次

有人说作者吹牛逼,我特么几年没搞懂的东西。一分钟理解原型,原型链?扯犊子吧?
说实话,原型和原型链这个东西,无非就是两个单词 prototype 和 __proto__,真的不难,虽然到今天一直是看了忘,忘了看,放下点和产品斯逼的时间,彻底把这玩意弄清楚了。

prototype 和 __proto__的概念

   1.prototype是函数特有的属性(对象是没有的!)
   2.__proto__是对象拥有的内置属性 (function 是没有的!)

看到这里,已经把以前的疑惑解开了一半,有没有?

new的过程

var Person = function(){};
var p = new Person();

new的过程拆分成以下三步:

(1) var p={}; 也就是说,初始化一个对象p
(2) p.__proto__ = Person.prototype;
(3) Person.call(p); 也就是说构造p,也可以称之为初始化p

举个例子

var Person = function(){};
Person.prototype.sayName = function() {
    alert("My Name is Jacky");
};

Person.prototype.age = 27;
var p = new Person();
p.sayName();

p是一个引用指向Person的对象。我们在Person的原型上定义了一个sayName方法和age属性,当我们执行p.age时,会先在this的内部查找(也就是构造函数内部),如果没有找到然后再沿着原型链向上追溯。

这里的向上追溯是怎么向上的呢?这里就要使用__proto__属性来链接到原型(也就是Person.prototype)进行查找。最终在原型上找到了age属性。

PS:如果此文对你有任何的启发或者收获,请不吝手中的 关注,任何疑问留言陪撕。

相关文章

  • 廖雪峰JS小记

    (function(){})() 原型,原型链 浅谈Js原型的理解JS 原型与原型链终极详解 对象 对象:一种无序...

  • Javascript(三)之原型继承理解

    进阶路线 3 原型继承 3.1 优秀文章 最详尽的 JS 原型与原型链终极详解 一 最详尽的 JS 原型与原型链终...

  • web前端面试之js继承与原型链(码动未来)

    web前端面试之js继承与原型链(码动未来) 3.2.1、JavaScript原型,原型链 ? 有什么特点? 每个...

  • JS原型链

    1什么是JS原型链? 通过__proto__属性将对象与原型对象进行连接. 1.1 JS原型链的作用? 组成的一个...

  • js_继承及原型链等(四)

    js_继承及原型链等(三) 1. 继承 依赖于原型链来完成的继承 发生在对象与对象之间 原型链,如下: ==原型链...

  • 一分钟秒杀,js原型与原型链

    有人说作者吹牛逼,我特么几年没搞懂的东西。一分钟理解原型,原型链?扯犊子吧?说实话,原型和原型链这个东西,无非就是...

  • JavaScript 原型、原型链与原型继承

    原型,原型链与原型继承 用自己的方式理解原型,原型链和原型继承 javascript——原型与原型链 JavaSc...

  • JS的__proto__和prototype

    最近在回顾JS的原型和原型链的知识,熟悉JS的同学都知道JS的继承是靠原型链实现的,那跟原型链相关的属性__pro...

  • JS闭包问题(一)

    之前我写过一篇JavaScript原型与原型链的文章,此属于JS中的重难点。 而闭包,是JS中除了原型链之外又一个...

  • javascript中的原型链与继承

    javascript中的原型链与继承javascipt中的原型链和继承机制是这门语言所特有的,但js中的原型机制也...

网友评论

    本文标题:一分钟秒杀,js原型与原型链

    本文链接:https://www.haomeiwen.com/subject/riqbyxtx.html