救救孩子吧!!!
function animal(name,num){
this.name=name;
this.num=num;
console.log(this); //1.证明这里的this指向window.
this.show=function(){
alert(this.name+':'+this.num); //2.实例化后this指向了animal.
console.log(this);
};
}
/* 验证最初使用构造方法时this的指向 */
/* animal('lisi',15);
window.show(); */
var test=new animal('cat',5);//这一步不是很明白这个new是怎么工作的?他怎么使得this指向了animal?
//使用new后会自动执行如下操作:①创建一个新对象;②将构造函数的作用域赋给新对象(因此this就指向了这个新对象);③执行构造函数中的代码(为这个新对象添加属性);④返回新对象。
// 百度这么说,那不是创建的新对象就是animal?因为this指向animal。但是animal是个函数他本来就是个对象啊!!搞不懂!!!
正在回答 回答被采纳积分+1
我的理解是函数里面的this,不被实例化(也就是new)的话,指向的就是window,一旦被实例化之后,this就指向实例化出来对的对象,比如执行这句
var test = new animal("xm",12)之后,此时在函数里面的this就是指向test
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星