搜索
写经验 领红包
 > 情感

前端什么是原型链(原型和原型链的理解前端面试)

导语:前端系列——原型和原型链

1、原型(prototype)、原型链(__proto__)

[函数]

普通函数、类(所有的类:内置类、自己创建的类)

[对象]

普通对象、数组、正则、Math、arguments...

实例是对象类型的(除了基本类型的字面量创建的值)

prototype的值也是对象类型的

函数也是对象类型的

...

a. 所有的函数数据类型都天生自带一个属性:prototype(原型),这个属性的值是一个对象,浏览器会默认给它开辟一个堆内存.

b. 在浏览器给prototype开辟的堆内存中有一个天生自带的属性:constructor,这个属性存储的值是当前函数本身.

c. 每一个对象都有一个__proto__的属性,这个属性指向当前实例所属类的prototype(如果不能确定它是谁的实例,都是Object的实例).

function Fn() {

var n = 100;

this.AA = function () {

console.log(`AA[私]`);

};

this.BB = function () {

console.log(`BB[私]`);

};

}

Fn.prototype.AA = function () {

console.log(`AA[公]`);

};

var f1 = new Fn;

var f2 = new Fn;

console.log(f1.n);

本文内容由小芦整理编辑!