JS-原型与原型链常见面试题

原型与原型链的常见面试题

1.

var A=function(){}

A.prototype.n=1

var b=new A()

A.prototype={
n:2,

m:3

}

var c=new A()

console.log(b.n,b.m,c.n,c.m)//1,undefined,2,3

分析一下:b.n 因为b是A的实例所以指向A的原型对象,有一句话:对象实例的隐式原型指向构造函数的显示原型 ,A.prototype={} A的原型对象又指向了一个新的对象原来的对象中没有m 所以b.m是Undefined,c又是A的实例 指向构造函数A的显示原型 也就是A的原型对象 这个原型对象和b指向的原型对象不一样
所以c.n是2,c.m是3
2.

var F=function(){};

Object.prototype.a=function(){
console.log('a()')

};

Function.prototype.b=function(){
console.log('b()')

}

var f=new F();

f.a()//a()

f.b()//报错找不到b这个函数

F.a()//a()

F.b()//b()

万能图:
在这里插入图片描述

相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页