Javascript 使用';这';关键字未按预期工作

Javascript 使用';这';关键字未按预期工作,javascript,html,Javascript,Html,标题可能不正确,但我不知道如何提问! 我遇到了这个关键字的问题。在本代码中使用它时 它工作得很好。但是,当我在输入元素上分配一个使用this关键字的函数时,它的工作方式与 HTML 这个这里将不是元素,您需要从DOM传递它,像这样使用它 <input type="text" onkeyup="up(this);"></input> 尝试使用函数扩展DOM元素原型: HTMLInputElement.prototype.up=function(){ 如果(this.ty

标题可能不正确,但我不知道如何提问! 我遇到了
这个
关键字的问题。在本代码中使用它时
它工作得很好。但是,当我在输入元素上分配一个使用
this
关键字的函数时,它的工作方式与
HTML


这个这里将不是元素,您需要从DOM传递它,像这样使用它

<input type="text" onkeyup="up(this);"></input>

尝试使用函数扩展DOM元素原型:

HTMLInputElement.prototype.up=function(){
如果(this.type==“text”){
this.value=this.value.toUpperCase();
}
};

您还可以使用JavaScript提供的最可怕的东西:

onclick="up.call(this);"

call(…)
基本上将函数中的
this
设置为一个特定值,在本例中设置为元素。

对不起,它可以工作。以这种方式扩展
HTMLInputElement
原型是个坏主意。是的,它可以工作,但我不了解它是如何工作的,我对javascript还不熟悉。你能解释一下你的密码吗@num8er@torazaburo,我知道了,我已经更新了我的答案。(:@johnscott每个DOM对象都有自己的函数集,可以通过prototype访问和扩展函数。仅此而已。但再次强调,使用jQuery实现,因为它比使用HTMLInputElement更安全。还可以阅读JavaScript的OOP部分。它在未来将非常有用。实际上,我更喜欢您的第一个解决方案。但在任何情况下,它都是标准的do just do do
onkeyup=“up(this”)
function up(elt)
<input type="text" onkeyup="up(this);"></input>
function up(el)
{   
    el.value=el.value.toUpperCase();
}
onclick="up.call(this);"