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

JS “this”绑定和子类问题

JS “this”绑定和子类问题

慕桂英4014372 2018-12-19 18:13:42
Car是父,Van是其子类问题:Car.call(this,loc) 是把Car的执行环境放在this里吗?2 .此时意味着Car中this 就是 是Van中的this指代的(Object.create(Van.prototype))?如果是,为什么?3.讲师说 =Object.create() 是将括号内的对象 委托到 等式左边;但是它的返回值:一个具有指定的内部原型且包含指定的属性(如果有)的新对象 ,这种返回值怎么用来解释原型链?似乎仍然要占用空间
查看完整描述

1 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

首先,你这里还都是构造函数,还没有类。


第一个问题,A.call(this,argu)是将this绑定到A的作用域,并且参数为argu,这里也就是把van作用域下的上下文带给了car。


第二个问题,van被作为构造函数时候的this才是指代的Object.create(Van.prototype),然后由于call的作用,其被传递到了car中。


第三个问题,Object.create()其实和new操作符,在以构造函数创建对象上作用是一致的。


var Car = function() {};

var carA = new Car();

var carB = Object.create(Car.prototype);

以上代码的两种实现其实是等价的,但是Object.create还可以直接以一个对象为参数传入,直接实现继承。


// 接上面

var carC = Object.create(carB);

此处carC的原型就是carB。

不过原型链本来就是以多个对象串联起来形成的,本来就是要占用空间的,不是很懂这个问题的重点。


查看完整回答
反对 回复 2019-01-21
  • 1 回答
  • 0 关注
  • 421 浏览
慕课专栏
更多

添加回答

举报

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