彻底深刻理解js原型链之prototype,proto以及constructor(一)

前言

以下概念请花费一定的时间彻底理解,才能进行下一步,思考题一定要思考,这样才能彻底掌握原型链的知识点,教程中如果有任何的错误不足请指正!

函数对象

由function创造出来的函数,比如:

    function a(){};
    var b=function(){};

系统内置的函数对象

Function,Object,Array,String,Number

只有函数对象才有 prototype属性 ,重要的事情说三遍!

思考: js的引用数据类型都属于函数对象吗?

普通对象

除开函数对象之外的对象都是普通对象

var b='qwe'; // b 是字符串类型,属于普通对象
var c=123;; // c 是数字类型,属于普通对象

思考:js有五种基本类型:Undefined,Null,Boolean,Number和String,他们都是属于普通对象吗?

原型对象

prototype属性也叫原型对象,主要是为了实现继承和共享属性;

可以说我们的每一次编程,内在都有原型对象来发挥着作用,如果你没有掌握原型对象的含义,那么你的js还没有真正的入门!

function a(){};

首先对象 a 是由Function创造出来,是函数对象;那么根据我们以上的教程,a 就有了prototype属性,那么这个原型对象是怎么创造出来的呢? 来看下面这个例子:

var temp = new a();
a.prototype=new Object();
a.prototype = temp;

那么a的prototype属性就是这样创造出来的;

思考:原型对象prototype 属于函数对象吗?

原文链接:【https://www.infoq.cn/article/lXtBrMtRPmzcbLHEHFYN】。未经作者许可,禁止转载。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章