javascript - 如何在函数内部传递参数?

标签 javascript jquery

我开始学习 Jquery,但我无法理解函数参数:( 如果您查看我的第一个 代码并运行它:我的脚本会工作 (没有参数)。如果您查看我的第二个代码
(带参数)并运行它:第二个脚本 也可以工作!

我的第一个问题:我是否在第二个脚本中正确设置参数?
第二个问题:我怎样才能检查我的参数是设置还是正确传递到我的函数?
附言很抱歉成为 NOOB,谢谢你!!

   //First code (WITHOUT PARAMETERS!!!) 
   $(document).ready(function () {
       var addclass = $('p:first');

       function AddClass() {
           addclass.addClass('first');
           if (addclass.is($('.first'))) {
               alert('here');
           }
           else {
               alert('not here');
           }
       }
       $('.button').click(function () {
           AddClass(addclass);
       });
   });
   //Second code (WITH PARAMETERS)
   $(document).ready(function () {
       var addclass = $('p:first');

       function AddClass(addclass) {
           addclass.addClass('first');
           if (addclass.is($('.first'))) {
               alert('here');
           }
           else {
               alert('not here');
           }
       }
       $('.button').click(function () {
           AddClass(addclass);
       });
   });

最佳答案

您的第二个参数是正确的,要检查传递给函数的任何参数,请使用:

arguments.length

例如:

function myfunc() {
   alert( arguments.length ); //output: 1, because you passed one argument

   // and to get that

   var myarg = arguments[0];
}

myfunc(someVar);

如果您不传递任何参数,则:

function myfunc() {
   alert( arguments.length ); //output: 0, because you passed no argument
}

myfunc();

对于您的功能:

  function AddClass(addclass) {

                      ^-- declaring addclass is not necessary if you use like following

       // checking for argument

       if( arguments.length ) {
         // arguments[0] will give you addclass
         // you may not write addclass to function like above
       }

       addclass.addClass('first');
       if (addclass.is($('.first'))) {
           alert('here');
       }
       else {
           alert('not here');
       }
   }

使用addclass 参数调用函数:

   $('.button').click(function () {
       AddClass(addclass);
   });

关于javascript - 如何在函数内部传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11297218/

相关文章:

javascript - localstorage刷新页面保存

javascript - Jquery "greater than"符号

jquery - 使用CSS动画备忘单时div跳转

javascript - 重叠框架的导航菜单

c# - 在 AutoPostBack = true 上触发 jQuery 代码?

javascript - 根据用户选择显示 Material ui TextField

ASP.NET MVC 3 Razor 页面中的 JavaScript

javascript - 如何使用 Array.prototype.sort() 对具有重复值的数组进行排序?

javascript - 如何使 Bootstrap 网格列成为页面的全高?

javascript - Foundation 5 reveal 不会打开(用 jQuery 附加到 BODY)