+ 1
I've no idea why this prints NaN. HEEELP!
function person(name, age, color) { this.name = name; this.age = age; this.skincolor = color; this.YearOfBirth = Born(); } function Born() { return 2019 - this.age; } var p1 = new person("Jane ", 42, "white"); document.write(p1.YearOfBirth);
8 ответов
+ 3
Try
function person(name, age, color) {
this.name = name;
this.age = age;
this.skincolor = color;
this.born = function() {
return 2019 - this.age;
}
this.YearOfBirth = this.born();
}
var p1 = new person("Jane ", 42, "white");
document.write(p1.YearOfBirth);
+ 2
Mystic Life Atleast it does not look like Java at all.
Java would look like this:
class Person {
private String name;
private int age;
private String skincolor;
private int YearOfBirth;
Person(String name, int age, String color) {
this.name = name;
this.age = age;
this.skincolor = color;
this.YearOfBirth = this.Born();
}
private int Born() {
return 2019 - this.age;
}
}
class MyClass {
public static void main(String args[]) {
Person p1 = new Person("Jane ", 42, "white");
System.out.println(p1.YearOfBirth);
}
}
+ 2
Mystic Life this represents an object self.
You can give this object variables:
this.age = 400;
The variables won't be confused with other object variables.
You can have 2 or more objects with the same object variable name.
Objects can also have functions.
+ 1
How would function Born know what is "this"?
Shortly the problem is in that you used this-keyword in Born-function.
But I assume you can make a solution or 2 by yourself.
+ 1
Mystic Life Could you explain why it does not look like JavaScript?
+ 1
Seb TheS I understood your point. Thanks.
0
Did you copy it from java? It doesn't seem like javascript. Because person function is like a java class constructor.
0
What is the purpose using "this" in the person function?