【问题标题】:Is creating a function like getels(id) bad coding convention?创建像 getels(id) 这样的函数是错误的编码约定吗?
【发布时间】:2013-04-07 03:06:53
【问题描述】:

基本上,我真的很懒惰,而且我已经看到了太多由很长的函数名称中的拼写错误引起的错误,所以我在 javascript 中做了一个函数

function getels(id){
    return document.getElementById(id);
}

这是好的编码约定吗?它是否会明显减慢代码速度?
我是否使用它真的很重要,还是不应该。这是一个相当普遍的问题,我在这里使用的示例是 javascript。

【问题讨论】:

  • 最好使用jQuery..:)
  • @IswantoSan 总是 jquery :)
  • 顺便说一句,我不知道 jquery

标签: javascript


【解决方案1】:

你应该试试 jQuery。但是,这很好,因为你正在这样做。你也可以这样做:

var $ = function(id){
   return document.getElementById(id);
};

然后你就可以打电话了

$("your_id") 获取元素。

它不会明显减慢你的脚本,here 你可以看到虚拟函数的方式慢了大约 2%。

【讨论】:

  • getElementById 很容易优化:您可以将所有带有id 的元素放在哈希表中。它不一定“比常规函数调用花费更长的时间”。
  • 如果您事先不知道要调用的 ID,则可以这样做,通常情况就是这样。
  • 哈希表查找变量键的速度和常量键一样。
  • 不,我指的是您声称“getElementById 比常规函数调用花费的时间更长,因为它在 DOM 中四处查看”。大多数浏览器会自己保存一个哈希表来按 ID 查找元素,因此getElementById 非常非常快;它不需要遍历 DOM。无需自己动手;你之前的没问题。
  • 我其实不懂jquery。这可能是这里的大罪,但我可能应该学习它
【解决方案2】:

这似乎是一种相当普遍的做法。专门针对getElementById。我似乎记得一些谷歌图书馆以这种方式使用_gel

我觉得没问题。

一个相关问题:Make alias to document.getElementById in Javascript

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-09
    • 2015-03-28
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 2011-10-25
    • 2014-07-21
    相关资源
    最近更新 更多