为了账号安全,请及时绑定邮箱和手机立即绑定

一个构造函数里面有自己的方法和原型方法,两个方法优先调用哪个?

一个构造函数里面有自己的方法和原型方法,两个方法优先调用哪个?

噜噜哒 2018-10-11 14:11:26
function fn(){this.a = 0;console.log(this);this.b = function(){console.log(this.a); }}fn.prototype = {b:function(){this.a = 20;console.log(this.a); },c:function(){this.a = 30;console.log(this.a); }}var myfn = new fn();myfn.b();myfn.c();这段代码输出的是0 和 20;为什么后面的a = 20没有将前面的a = 0覆盖呢?还有fn里面的this 指向的是谁呢?
查看完整描述

1 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

从运行结果就能看出,如果fn本身就有该方法,肯定是优先调用fn内部的函数,如果fn没有就会尝试着寻找原型上的。

然后this因为你这里使用了new,所以这里的this指向的就是你的实例对象啊。具体的this指向相关情况网上很多文章都有说就不在赘述了。

新手回答,有错误的欢迎指正~~


查看完整回答
反对 回复 2018-11-30
  • 1 回答
  • 0 关注
  • 766 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信