老师,我为什么把add.sex换成add.name之后结果是add呢?

老师,我为什么把add.sex换成add.name之后结果是add呢?

function add(a,b){
   return a+b;
}
add.name="xh";
add.sex="male";
add.setSex=function(sex){
    this.sex=sex;
};
console.log(add.name);
console.log(add.setSex("female"));
console.log(add.sex);
console.log(add(1,2));

我看视频中add.sex是male,我就多加了一个add.name,是不是触发了name的bug?

正在回答

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

2回答

同学,你好。

看得出来你认真研究了,非常棒!给你一个赞。

确实是这样的,如果你写add.name出来的结果就是add,因为name是个关键字,你写add.name会被认为是要取出add方法的方法名,那么输出的结果就是add,如果你把name换成其他的名字就不会冲突了,就能正确输出了。

如果帮助到了你,欢迎采纳!

祝学习愉快!

  • 但是我在那个表上没看到name是关键字啊,而且视频中很多地方都用了obj.name啊,看来以后尽量不用name这个词了,请问老师还有哪些词尽量不要用的啊?
    2019-07-28 14:35:52
  • Miss路 回复 提问者 不会敲代码的小浩子 #2
    是的,以后可以尽量不要用name,可以用username等,要说那些词儿尽量不要用,这个要总结起来还真是不容易,你只要记住所有的内置的属性(比如name属性)或者方法名(比如add()方法),关键字this都不要用就好了,这个得慢慢总结,不用太担心这个问题。
    2019-07-28 17:49:52
提问者 不会敲代码的小浩子 2019-07-28 12:36:01

我把add.name换成add.username就打印出xh了

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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