繁体   English   中英

有没有更好的方法来编写这些功能?

[英]Is there a better way to write these functions?

无论如何,我都不是JavaScript程序员,但这使我很长时间以来一直很烦,

有没有更好的方法来编写这两个单独的函数。 作为一个单一的功能?

function showAll()
{
   var collection = getElementsByClassName("dealHolder");
   for (var x = 0; x < collection.length; x++) 
   {
      setParentTrue(collection[x].parentNode);                    
   }
}

function setParentTrue(obj) {
     if (obj.id != "deal") 
     {
          obj.id = "true";
          setParentTrue(obj.parentNode);
     }
     else
     {
        obj.style.display = 'block';
     }
}

我可以在另一个函数中声明一个函数并递归调用它吗? 每当我需要递归时,我似乎总是为它创建一个单独的函数

为建议喝彩

function showAll()
{
   var collection = getElementsByClassName("dealHolder"),
       x = 0,
       setParentTrue = function(obj) {
        if (obj.id != "deal") 
        {
            obj.id = "true";
            setParentTrue(obj.parentNode);
        }
        else
        {
            obj.style.display = 'block';
        }
   };
   for (x = 0; x < collection.length; x++) 
   {
      setParentTrue(collection[x].parentNode);                    
   }
}

是的,您可以在函数内声明一个函数,因为函数是对象。

function showAll()
{

    var setParentTrue = function (obj) {
         if (obj.id != "deal") 
         {
              obj.id = "true";
              setParentTrue(obj.parentNode);
         }
         else
         {
            obj.style.display = 'block';
         }
    }

   var collection = getElementsByClassName("dealHolder");
   for (var x = 0; x < collection.length; x++) 
   {
      setParentTrue(collection[x].parentNode);                    
   }
}

实际上-编写一个单独的函数来保存循环中发生的事情是一种好习惯,因此我不会更改上面的内容。

实际上-不,我不希望这样做-在这种情况下,循环中的函数不太可能对其他任何人都可用,因此我将使用以下示例之一。 嵌套在同一对象中,但仍具有独立的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM