老师关于$.fn.extend有个问题
$.fn.extend里面的mode不是一个局部变量吗,为啥后面的hide和show两次执行还会生效。
51
收起
正在回答
3回答
同学你好,没错,理解的对哦。祝学习愉快 ~
好帮手慕夭夭
2020-05-06 18:54:32
同学你好,mode的值与showHide传入的参数没有关系,它并不为空。每次调用时,showHide里面的代码都会执行一次,如下:
mode默认情况下为undefined,因为默认情况下,元素还没有设置data,获取没有定义的属性就是undefined。undefined转换为布尔类型为false,取反为true。执行if判断为mode赋值。
函数showHide返回的是一个对象,所以mode赋值的就是一个对象:
可以输出一下mode:
那么不管调用多少次showHide,里面的代码都会执行一次,mode都会重新被定义并赋值为undefined,然后执行if判断为它赋值。
祝学习愉快 ~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星