关于原型链,最好有详细的解释

10、正确的选项是?
Let Q=function(){};
Object.prototype.q=function(){};
Function.prototype.p=function(){};
Let q=new Q();
A:q能获取到q但是不能够取到p;
B:Q能取到q但是不能够取到p;
C:q能取到q,p;
D:Q能取到p,但是不能取到q;

阅读 1.5k
1 个回答

在js中,每个函数实际上都是一个函数对象!
如题,Function.p()和Object.q()都是显而易见可以调用的,而其实Function.q()也是可以调用的。
因此Q是Function,两个方法都可以直接调用。
而q=New Q(); q是一个Object,因此不能直接调用p。但是q.constructor返回了Q,因此q.constructor.p()是可以调用的。

回到题目, 选择答案C,虽然q不能直接取到p,但是可以间接取得。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题