在javascript函数中,它是指通过参数传递的变量吗?

在javascript函数中,它是指通过参数传递的变量吗?,javascript,Javascript,混淆javascript的这一特性 <script> function person(firstname,lastname,age,eyecolor) { this.firstname=firstname; this.lastname=lastname; this.age=age; this.eyecolor=eyecolor; } myFather=new person("John","Doe",50,"blue"); document.write(myFather.first

混淆javascript的这一特性

<script>
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}

myFather=new person("John","Doe",50,"blue");

document.write(myFather.firstname + " is " + myFather.age + " years old.");
</script>

职能人员(名字、姓氏、年龄、眼睛颜色)
{
this.firstname=firstname;
this.lastname=lastname;
这个。年龄=年龄;
this.eyecolor=eyecolor;
}
我父亲=新人(“约翰”,“多伊”,50,“蓝色”);
document.write(myFather.firstname+“是”+myFather.age+“岁”);

约翰指的是这个。名字还是后面的名字?this.firstname指的是什么?

this.firstname指的是引用对象的属性firstname。在您的例子中,myfather是对象,因此this.firstname指的是myfather的名字。

在JavaScript中,这总是指函数的“所有者” 我们正在执行,或者更确切地说,一个函数是其方法的对象。当我们在页面中定义忠实的函数doSomething()时,它的所有者是页面,或者更确切地说是JavaScript的窗口对象(或全局对象)

这里,this.firstname指的是页面的所有者


希望它能对您有所帮助。

。有些东西是实例的属性,而另一个是普通变量(在这里初始化为参数)。在一个被分配给另一个之后,它们都有相同的值(字符串
“John”
)。对于这个特定的问题
,这个
指的是由
new
关键字创建的新对象。请参阅另一个问题的答案,以获取有关
如何在javascript中工作的完整描述:当谷歌搜索时,我看到了@Ashok:不要参考
的怪癖模式!完全错误,或完全限于事件处理。更好的链接是
person
在这里是一个构造函数(并被这样调用),因此它既不是一个方法,也没有所有者,
this
也没有引用页面或
窗口,那么谁是对的@伯吉能解释更多吗?我认为这应该是指person函数?@KaitlynSacco:是一个令人困惑的野兽,因为它取决于函数的调用方式。在您的例子中,它指的是初始化后分配给
myFather
的新实例对象。