自己写了个的函数,请指教~~

自己写了个的函数,请指教~~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function setAttribute()
    {
        var str='';
 
        for (var i = 0,len = arguments[0].length; i < len; i++) 
        {
            if(arguments[0][i].className != null)
            {
                var attirubte = arguments[0][i].className;
                str = attirubte;
 
                for (var j = 1,leng = arguments.length; j < leng; j++) 
                {
                     
                    str += ' ' +  arguments[j];
                }
                arguments[0][i].className = str;
            }
            else
            {
                arguments[0][i].className = str;
            }
        }
 
    }
    setAttribute(li,'box','ddd','aggg','fafaf');//随意添加任意多个属性值,前提是CSS中已定义才能有效果


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

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

1回答
路大锤 2017-03-03 19:21:58

你定义的setAttribute()方法没有参数,为什么下面调用的时候传递参数了呢?

  • 提问者 慕粉4232145 #1
    1:JS中的函数Function本身是以对象的形态存在的。 对象就会有自己的方法和属性以及继承构造函数的方法和属性 2:Function对象中的参数实际是一个argument对象。 输入的函数参数都被保存在arguments对象中,最多可以有255(如果没记错)个参数。 3:以上的函数虽然没有定义参数的存在,但这也是优势所在,可以传递N个参数做为运算,而采用arguments[i]的运算逻辑去调用被传入的实参 4:函数的参数传送,number,boolen,string是以值的方式传入做为形参,如果函数修改参数的值,将不会修改参数的初始值 而对象,数组是以引用的方式传送到形参。因此我们在函数内部修改对象的属性就会修改其初始的值。 其实以上代码我就是对函数的形数对象arguments 调用。 新人学习,思维不是很清楚。。望大神指教
    2017-03-03 22:26:40
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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