用于对象引用

时间:2015-03-16 16:30:54

标签: javascript oop this

JavaScript和我相信所有其他OO语言都有一个特殊的关键字this,您可以在方法中使用它来引用当前对象。例如,假设您有一个名为validate的函数,它在给定对象以及高值和低值的情况下验证对象的value属性

function validate(obj, lowval, hival) {
  if ((obj.value < lowval) || (obj.value > hival))
    alert("Invalid Value!");
}

然后,您可以在每个表单元素的onchange事件处理程序中调用validate,使用它来传递元素,如下例所示:

<input type="text" name="age" size="3"
  onChange="validate(this, 18, 99)">

通常,this指的是方法中的调用对象 我了解所有this用法,我只是有一个小问题:this如何在幕后工作?我的意思是如果你不指定名称,该方法如何知道哪个对象正在调用?

1 个答案:

答案 0 :(得分:2)

在我使用的编译器中,这是通过在调用堆栈上传递隐式参数以及显式参数来完成的。当然,它可能会因编译或解释引擎而异,但这是最简单的方法。