Javascript:如何创建全局函数和变量

Ada*_*dam 8 javascript global element function object

我想创建一个我可以在元素上使用的新函数,如下所示:

document.getElementById("element").myNewFunction();
Run Code Online (Sandbox Code Playgroud)

我不是在说这个:

document.getElementById("element").myNewFunction = function(){
   doSomething...
}
Run Code Online (Sandbox Code Playgroud)

因为这仅适用于该元素,但是我应该如何创建全局函数,我可以在所有元素上使用,例如JavaScript内置的元素?

Ric*_*d H 9

使用Element的原型来扩展其功能:

Element.prototype.myNewFunction = function() { 
      // your code...
};
Run Code Online (Sandbox Code Playgroud)

现在,您可以在任何元素对象上调用此方法.

编辑:我刚刚进行了快速检查,看起来这对于IE7及以下版本不起作用,IE8可能是不合适的.

编辑2:同样,Eli指出,扩展您不拥有的对象可能不是最佳做法.鉴于这种以及不稳定的IE支持,您可能需要考虑一个简单的过程函数:

function myFunction(element) {
  // your code...

  // which may or may not return an object or value
  return blah;
}
Run Code Online (Sandbox Code Playgroud)


Eli*_*Eli 5

看到这个问题:在Javascript中,你能扩展DOM吗?.

尽管可以这样做,但通常认为改变您不拥有的对象的功能是不好的做法.