关于函数一个不太理解的地方。

关于函数一个不太理解的地方。

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

①:

$box.showHide({

css3:true,

animation:'fade'

});


②:

$('#btn-show').on('click',function(){

$box.showHide('show');

});

$('#btn-hide').on('click',function(){

$box.showHide('hide');

});


视频4:10-4:48。

这里第一个位置的showHide直接传参,第二个位置地showHide放入字符串调用函数。

我的疑问是:

1. 第一个位置的showHide({})里面的内容不会被浏览器当作参数传进去吗?

就是第一个位置的showHide里面的css:true不会被当作$elem被传进去吗,不会因此报错么?

方法function showHide($elem,options){} 

2. $box.showHide('show'); 我把show两边的引号去掉,程序报错了。改成了$box.showHide({show:123})这个形式,没有报错,也没有反应,应该是赋值了。

所以function方法里面如果传入的是字符串的话,才会被当作参数,如果是放在大括号里面就是赋值,如果传入一个变量…除了报错以外也没明白会怎么样。

……(学到现在还没弄明白function真是对不起…麻烦老师解答一下。)

正在回答

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

2回答

同学你好,老师明白你的意思了。你是想问showHide方法中为什么可以一个传入对象,一个传入字符串是吧:

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

解释如下:

在jQuery原型上添加的showHide方法中对传入参数做了判断,传入的是对象还是字符串:

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

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

好帮手慕星星 2019-11-14 14:52:28

同学你好,关于同学的问题解答如下:

1、$box是jQuery对象,调用的showHide是jquery上的方法,也就是代码中通过$.fn.extend在jQuery原型上添加的方法:

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

同学说的两个参数情况上图中有标注解释。

2、$box.showHide('show')这里就是一个简单的函数传参调用。给你举个例子:

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

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

参数可以是我们在js中学习过的一些类型,例如字符串,数值,布尔值,对象,函数等等,这些都可以。但如果是下面这样:

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

不加引号,浏览器会认为是变量。前面代码如果有定义这个变量是可以的;如果没有,就会报错变量未定义。

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

  • 提问者 夜魇丶 #1
    辛苦解答…第一问我明白了。但是$box.showHide('show'),这个showHide调用的应该也是$.fn.extend上的showHide方法。 那么此时的'show'应该也是被当作option参数传入函数中的…(感觉要表达不清楚了。) 两个函数用的是相同的格式,$box.showHide(),一个传入了对象,一个传入了字符串。都应该被jquery中showHide(option),接收。那么字符串应该也被代入到option参数中。 我还是没想明白,难道$box.showHide('show');调用的是function showHide($elem,options)这个方法。而$box.showHide({})调用的是jquery中showHide(option)这个方法吗
    2019-11-14 15:52:36
  • 提问者 夜魇丶 #2
    …我表达的不好,如果没看明白,就帮我解答一下原题中,①②两个方法是否都调用的是jquery中showHide(option) 这个方法。
    2019-11-14 15:56:47
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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