为什么没有打印出属性值

为什么没有打印出属性值

老师您好:

不理解这段代码,第一个不应该打印出person属性和它的值吗

和第二个代码一样

function add(a,b){
    return a+b;
}
function fn(fn){
    console.log(fn);
    fn.person="xm";
    console.log(fn);
    fn=function(){};
    fn.person="xh";
}
fn(add);
document.write(add.person);
function fn1(fn){
console.log(fn);
fn.person="xm";
console.log(fn);
fn=function(){};
fn.person="xh";
}
var xm={};
fn1(xm);

正在回答

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

2回答

同学你好,同学可以使用console.dir看下打印结果:

http://img1.sycdn.imooc.com//climg/5e50f56b096a5d2303870194.jpg

http://img1.sycdn.imooc.com//climg/5e50f578095288b204810252.jpg

这个打印的就是函数了。

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

好帮手慕粉 2020-02-22 13:49:49

同学你好,因为同学在fn1函数中打印fn的时候,还未给其赋值,就是xm空对象:

http://img1.sycdn.imooc.com//climg/5e50c0cc098838c206800223.jpg

那在未赋值之前就是空对象,打印出来就是空对象:

http://img1.sycdn.imooc.com//climg/5e50c0ec09b42af305610268.jpg

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

  • 提问者 mkcy #1
    函数fn中的第一个打印,只打印了add的函数字符串,函数fn中第二个打印前面添加了属性person,为什么还是只打印出add函数字符串,没有打印出person属性
    2020-02-22 13:58:50
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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