如何使一个函数去追求一个元素

Dan*_*Dan 9 javascript jquery

JavaScript,你会经常看到说document.getElementById("element").someFunction();$("element").someFunction();代替的功能someFunction($("element"));.凡someFunction(element)看起来像下面的代码一点点.

someFunction(element) {
    //element.doSomething();
}
Run Code Online (Sandbox Code Playgroud)

我的问题是你如何创建一个函数来操作它所附加的元素而不是操纵作为参数传递的元素?

Pra*_*lan 7

你可以使用原型实现它

// `getElementById` returns a `Element` object so extend it's prototype
Element.prototype.someFunction = function(){
   // this.somethig
}

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

Element.prototype.someFunction = function() {
  console.log(this.value)
}

document.getElementById("element").someFunction();
Run Code Online (Sandbox Code Playgroud)
<input value="abc" id="element" />
Run Code Online (Sandbox Code Playgroud)


注意:扩展本机对象的原型是非常糟糕的做法.

  • 值得注意的是,通常不推荐扩展内置对象的原型. (3认同)