原型面试题

Function.prototype.a = 1;
Object.prototype.b = 2;

function A() {}

var a = new A();

console.log(a.a, a.b); // undefined, 2

console.log(A.a, A.b); // 1, 2

https://www.cnblogs.com/everlose/p/12930468.html

对于 new 出来的对象 a 的属性,原型链查找的顺序应该是

a 自身
a.proto 相当于 A.prototype
A.prototype.proto 相当于 Object.prototype
Object.prototype.proto 这个为 null,原型链查找到头。
对于 function 定义的函数 A 的属性,原型链查找顺序应该是

A 自身
A.proto 相当于 Function.prototype
Function.prototype.proto 等于 Object.prototype
Object.prototype.proto 这个为 null,原型链查找到头。

图片说明

构造函数原型链

function G() {

}

function F() {
    return new G()
}

a = new F();
console.log(a);


console.log(a instanceof F);//false
console.log(a instanceof G);//true

关于构造函数:

一般构造函数不显式返回值,用户可以选择主动返回对象来覆盖正常的对象创建步骤
如果构造函数没有返回值:默认情况下 return this; 即返回创建的实例
如果返回简单数据类型:返回该实例
如果返回对象类型:返回这个对象类型,而不是实例

构造函数返回值有关

function A() {
    this.a = 1
    return {
        a: 2
    }
}
A.prototype.a = 3
const a = new A()

console.log(a.a)//a等于 A函数返回的对象{a:2}
console.log(a.constructor)//Object
console.log(a.__proto__)//Object.prototype
function Parent() {
  this.a = 'Parent'
}

function Child() {
  this.a = 'Child'
}

Function.prototype.print = function() {
  console.log(this.a)
}

Parent.print()//undefined
//Parent本身没有print这个方***随着原型链寻找,
//在Function的原型上找到了print方法,并执行
//实际上,执行print方法的是Function 不是Parent
//所以this.a指的是全局上的a 为undefined
//下面同理

Child.print()//undefined

var p = new Parent()
//找不到print 因为p的原型链上只有Object.prototype
p.print()//报错
前端问题总结 文章被收录于专栏

总结一些前端常见的面试笔试题,来和大家分享鸭

全部评论

相关推荐

kyw_:接好运
点赞 评论 收藏
分享
沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
正在热议
# 25届秋招总结 #
442240次浏览 4509人参与
# 春招别灰心,我们一人来一句鼓励 #
41913次浏览 531人参与
# 北方华创开奖 #
107422次浏览 599人参与
# 地方国企笔面经互助 #
7957次浏览 18人参与
# 同bg的你秋招战况如何? #
76585次浏览 561人参与
# 虾皮求职进展汇总 #
115499次浏览 886人参与
# 阿里云管培生offer #
120203次浏览 2219人参与
# 实习,投递多份简历没人回复怎么办 #
2454609次浏览 34856人参与
# 实习必须要去大厂吗? #
55761次浏览 961人参与
# 提前批简历挂麻了怎么办 #
149889次浏览 1977人参与
# 投递实习岗位前的准备 #
1195913次浏览 18548人参与
# 你投递的公司有几家约面了? #
33203次浏览 188人参与
# 双非本科求职如何逆袭 #
662189次浏览 7394人参与
# 如果公司给你放一天假,你会怎么度过? #
4751次浏览 55人参与
# 机械人春招想让哪家公司来捞你? #
157622次浏览 2267人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11535次浏览 284人参与
# 发工资后,你做的第一件事是什么 #
12682次浏览 62人参与
# 工作中,努力重要还是选择重要? #
35793次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20120次浏览 240人参与
# 我的上岸简历长这样 #
452000次浏览 8088人参与
# 实习想申请秋招offer,能不能argue薪资 #
39289次浏览 314人参与
# 非技术岗是怎么找实习的 #
155866次浏览 2120人参与
牛客网
牛客企业服务