AFAIK"这"当"属性"之间发生冲突时使用&安培; "参数"功能。
请在下面找到我的代码。
<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包含&#34; this&#34;因为person包含firstName作为参数并希望作为person的属性 我的怀疑是 this.fullName也有&#34;这个&#34;在它甚至认为没有fullName的参数。可能我错了(读&#34;这&#34;实际创建一个实例)。
如果以上是真的,它实际上创建了一个实例 然后我的问题是 它是在varp = new person()
中创建实例的,为什么我们要在person中创建fullName
属性的实例
答案 0 :(得分:0)
希望这有帮助
this
用于将任何值赋给对象的属性(Person类的实例)
this.firstName = your_var
这会将your_var
的值分配给firstName
对象的Person
属性,如果your_var在参数中或由某个局部变量创建,则无关紧要您
您可以将任何值分配给对象的属性
this
是指创建的实例,不会创建实例
答案 1 :(得分:0)
如果您运行此代码,则会出现以下错误:
Maybe/Either
方法调用的大小写出错。 更正后的代码如下:
Uncaught TypeError: p.fullname is not a function on line 10
答案 2 :(得分:0)
您的属性就像 > aa,bb
,并且您将它们作为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()
,如下所示:
undefined
现在它正在运作:JS Fiddle
var p = new person('Foo', 'Bar');