HTML:
<input type="button" name="red" onclick="dis()">
这是JavaScript的第一个代码:
function dis() {
alert(this.name)
}
这是工作版本:
HTML:
<input type="button" name="red" onclick="dis(this)">
JavaScript的:
function dis(a) {
alert(a.name)
}
答案 0 :(得分:0)
在第一种情况下,您在全局范围内调用dis()
。在这种情况下,this
是全局对象
在第二种情况下,您还可以在全局范围内调用dis()
。但是您将当前this
值作为参数传递给函数。
要使第一个案例与第二个案例相同,您应该像这样重写:
<input type="button" name="red" onclick="dis.call(this)">
通过这种方式,您可以将当前this
传递给函数。
这个的一般规则是查看函数左侧的内容(另一个词 - 被称为函数):
dis() // -> on the left nothing stands, so `this` will correspond to global object
a.dis() // -> on the left `a` stands, so `this` will correspond to `a`
new dis() // -> on the left `new` keyword stands, so `this` will correspond to newly created object