function people (name, age) {
this.name = name;
this.age = age;
}
var rob = new people("robert jr", 41);
var sam = new people("sam davies", 25);
function isOlderThan(age) {
if(rob.age > sam.age)
return true;
else return false;
}
我尝试使用此sam.isOlderThan(rob);
但是它不起作用。我对此很陌生,有帮助吗?
答案 0 :(得分:2)
// If you want to be able to call this as sam.isOlderThan()
// you need to use a prototype to add that function to the persons
// so they all have that function bound to them.
function person (name, age) {
this.name = name;
this.age = age;
}
person.prototype.isOlderThan = function( other_person ) {
return this.age > other_person.age;
};
var rob = new person("robert jr", 41);
var sam = new person("sam davies", 25);
console.log( sam.isOlderThan( rob ) );
console.log( rob.isOlderThan( sam ) );
答案 1 :(得分:1)
功能isOlderThan
尚未在人身上定义。
如果您想像sam.isOlderThan(rob);
这样称呼,可以在人身上使用prototype
function People(name, age) {
this.name = name;
this.age = age;
}
var rob = new People("robert jr", 41);
var sam = new People("sam davies", 25);
People.prototype.isOlderThan = function(p) {
return this.age > p.age;
};
console.log(sam.isOlderThan(rob));
console.log(rob.isOlderThan(sam));
答案 2 :(得分:1)
您好,欢迎来到StackOverflow。 假设您要使用people函数定义类的类型,并且将isOlderThan作为该类的函数的类型-请注意更改。
this
-指示当前对象的isOlderThan than函数被调用。现在,我们可以为创建的每个People对象调用isOlderThan函数。
function People(name, age)
{
this.name = name;
this.age = age;
}
var rob = new People("robert jr", 41);
var sam = new People("sam davies", 25);
People.prototype.isOlderThan = function(age) {
if (this.age > age)
return true;
else return false;
}
console.log(sam.isOlderThan(50))
console.log(rob.isOlderThan(sam.age))
enter code here
答案 3 :(得分:0)
您不能使用sam.isOlderThan
,因为isOlderThan
函数中没有定义people
函数(与其他语言的类别相关)。
isOlderThan
在全局范围内定义。
因此,您可以以isOlderThan()
或window.isOlderThan()
的身份运行它(只要您在浏览器中)
无需传递age
,rob
或sam
,因为它们是在全局范围内定义的,并且可以在isOlderThan
函数中使用。
答案 4 :(得分:0)
看看这个小提琴是否有帮助:
function Person(name, age) {
this.name = name;
this.age = age;
}
var rob = new Person("robert jr", 41);
var sam = new Person("sam davies", 25);
function isOlderThan(rob, sam) {
if (rob.age > sam.age) {
return true;
} else {
return false;
}
}
console.log(`Rob is older than Sam: ${isOlderThan(rob, sam)}`);