已采纳回答 / in23
this 指的是调用当前方法(函数)的那个对象,也就是说函数在谁那被调用,this就指的是谁function a() { console.log(this); } var b = {}; b.hehe = a; b.hehe(); //这时候this指向b//常见的就是绑定事件 没有拥有者,直接调用,就指向windowfunction a() { console.log(this); } a(); //this指向window
2017-03-11
最赞回答 / feiger
首先会在student原型链上查找是否有LEGS_NUM属性,发现没有然后向上查找原型链上是否有LEGS_NUM属性,发现找到了然后赋值完成,调用hi方法时也是一样的程序首先在student原型链上查找,发现找到了就直接返回了,就不会向上查找了
2017-03-11
已采纳回答 / feiger
视频中是get方法,obj是foo的实例,它本身是没有z属性的,当obj.z = 10赋值时程序发现obj并没有z这个属性,于是就像上查找foo的原型属性z,并且这个z的属性值是被get方法暴露出来的,是不能被改变的,只能通过set方法改变,你要obj的z能设置属性就要给z设置一个set方法就可以了,Object.definedProperty(obj, 'z', {set: function(val){return val}})
2017-03-09
已采纳回答 / 慕粉丹哥
不行,我还是厚着脸皮再来一次。首先,nAdd是全局变量,用nAdd = n的方式是可以吧局部变量暴露出去的,如果nAdd是简单的基本类型,n的每一次变化都需要通过nAdd = n的方式赋值。第二个,关于n的作用域问题,这里nAdd的作用,形成闭包,局部变量n并不会在执行完result()后销毁而是继续保存在内存中。
2017-03-08
已采纳回答 / 慕粉丹哥
只是让Student继承Person,让其拥有Person的方法,同时又拥有自己的私有方法。直接new Person(),将不会拥有Student里面的方法,如Student.learn()
2017-03-06
已采纳回答 / qq_灰色幽默_0
Student.prototype={y,2}; 这行代码的意思是将prototype重新赋值,也就是说这行代码之后,student.prototype只有y属性,没有x了。所以新创建的类中也没有x属性,输出,自然是undefined。
2017-02-27