老师这里的this.species的this指向谁 为什么

老师这里的this.species的this指向谁 为什么

function animal(species){
var obj=new Object();
obj.species=species;
obj.fn=function(){
return "动物的品种是"+this.species;
}
return obj;
}
var a1=animal("兔子");
console.log(a1.fn());

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕糖 2020-04-09 14:56:01

同学你好,不是的哦,因为这个是在这个对象中,执行的是obj,而obj这个是作为返回的对象,接收的是a1,所以是执行最终接收的这个对象。

而obj.species = species;只是obj对象中声明了一个species的属性,属性值是species(这个是参数,传入什么就是什么)。

若没有这个,就是没有species这个属性。那么this.species就是访问obj的这个属性,没有的话,回收undefined。

祝学习愉快!

好帮手慕糖 2020-04-09 12:00:51

同学你好,指向的是a1哦。

从函数可以看出指向的是obj这个对象。但是实际上obj是被返回的,a1接收的返回值就是obj。最终指向的是a1;

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

  • 提问者 小鲜花 #1
    一开始指向window的吗 obj.species=species; 加这句的作用是什么
    2020-04-09 14:20:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师