欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

原型与原型链

程序员文章站 2022-05-08 16:46:05
...

对象

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

var o1 = {}; 
var o2 = new f1();
function f1(){}; 
console.log(typeof o1); //object
console.log(typeof o2); //object
console.log(typeof f1); //function 

 o1 o2 为普通对象,f1函数对象

原型对象

JavaScript 中,每当定义一个对象时候对象中都会包含一些预定义的属性.普通对象有_proto_属性,而函数对象具有prototype属性,指向函数的原型对象.

每个对象都有 __proto__ 属性,但只有函数对象才有 prototype 属性

function Person(){};
var A = Person.prototype;
A为Person的原型对象.
A 有一个默认的 constructor 属性,这个属性是一个指针,指向 Person.
Person.prototype.constructor=Person;


下面用三张简单的图,配合一些示例代码来理解一下。

一、prototype和__proto__的区别

原型与原型链

参考:https://www.jianshu.com/p/dee9f8b14771
参考:https://www.cnblogs.com/shuiyi/p/5305435.html




相关标签: 原型与原型链