&引用;这";javascript中的关键字(作为实例)
AFAIK“this”用于函数的“属性”和“参数”之间发生冲突时。&引用;这";javascript中的关键字(作为实例),javascript,this,instance,Javascript,This,Instance,AFAIK“this”用于函数的“属性”和“参数”之间发生冲突时。 请在下面找到我的代码 <script> function person(firstName, lastName, age, eyeColor) { this.firstName = firstName; this.lastName = lastName; this.fullName = function() { return this.f
请在下面找到我的代码
<script>
function person(firstName, lastName, age, eyeColor) {
this.firstName = firstName;
this.lastName = lastName;
this.fullName = function() {
return this.firstname + " " + this.lastname
}
}
var p = new person();
document.write("fullname is " + p.fullName());
</script>
职能人员(名字、姓氏、年龄、眼睛颜色){
this.firstName=firstName;
this.lastName=lastName;
this.fullName=函数(){
返回this.firstname+“”+this.lastname
}
}
var p=新人();
document.write(“全名为”+p.fullname());
如果我在以下方面有错误,请纠正我this.firstName包含“this”,因为person包含firstName作为参数,并希望作为person的属性。
我的怀疑是 this.fullName中也有“this”,即使没有fullName参数。可能是我错了(读到“this”实际上创建了一个实例)。
如果上面是真的,它实际上创建了一个实例 那么我的问题是 它正在var
p=newperson()
中创建实例,为什么我们要在person内部创建fullName
属性的实例
希望这有帮助
此
用于为对象(Person类实例)的属性指定任何值
this.firstName=your_var
这将your_var
的值分配给Person
对象的firstName
属性。无论您的_var是在参数中还是在您创建的某个本地var中
可以为对象的属性指定任何值
此
引用已创建的实例,而不创建实例
您会注意到,如果运行此代码,会出现以下错误:
Uncaught TypeError: p.fullname is not a function on line 10
方法调用的大小写有错误。
更正代码如下:
document.write("fullname is " + p.fullName());
您的属性类似于
fooBar
,您将返回它们作为fooBar
,这些位置:
this.firstName = firstName; // firstName
this.lastName = lastName; // lastName
//but below as firstname, lastname instead of firstName and lastName
return this.firstname + " " + this.lastname
这里还有:
this.fullName = function(){ ... }
但是您将函数调用为p.fullname()
我还认为,由于
fullName()
返回firstName
和lastName
,如果要调用fullName()
,可能需要在创建实例时传递这些值,因为此函数需要这些值,否则会得到未定义的,如下所示:
var p = new person('Foo', 'Bar');
现在它正在工作:
职能人员(名字、姓氏、年龄、眼睛颜色){
this.firstName=firstName;
this.lastName=lastName;
this.fullName=函数(){
返回this.firstName+“”+this.lastName
}
}
var p=新人(‘Foo’、‘Bar’);
//检查控制台
log(“fullname是”+p.fullname())代码>可能相关:如果我可能在关注您的问题,则无需在个人
中设置全名
。它可以在person.prototype
上设置,并应用于person
的所有实例。提示:JavaScript区分大小写。只是一个问题,在创建person实例时不应该设置参数吗?比如:var p=newperson('foo,'bar')代码>