2017-03-05 13 views
-3

年在学习JavaScript,Java脚本计算时代正在试图提醒用户对象的内容,前三个是显示器,但与函数的函数年龄部位没有,请帮助生完孩子

<!DOCTYPE html> 
 
    <html lang="en"> 
 
\t <head> 
 
\t \t <script> 
 
\t \t \t var person = {fname: "Asha",lname: "Juma",dob: 2005,age:function(){(new Date().getFullYear() - this.dob);}}; 
 

 
\t \t \t function print() { 
 
\t \t \t \t alert(JSON.stringify(person)); 
 
\t \t \t } 
 
\t \t </script> 
 
\t </head> 
 
\t <body> 
 
\t \t <p>Lets hit this button to alert the user of the person object contents</p> 
 
\t \t <button onclick=print()>Click Me!</button> 
 
\t \t 
 
\t </body> 
 
    </html>

+0

在你的输出,你希望看到的'age'功能的代码,或给它的调用的结果? – simbabque

+0

结果像年龄:12 – Developer

回答

3

一个对象文本,因为你拥有它,这应该工作:

var person = {fname: "Asha",lname: "Juma",dob: 2005,age:(new Date().getFullYear() - 2005)}; 

如果你只打算用工作单人物体,物体文字是好的,但是,你必须把出生年份放在两次。

如果您想创建更多人,请使用构造函数。

function Person(fname,lname,dob){ 
    this.fname = fname; 
    this.lname = lname; 
    this.dob = dob; 
} 
Person.prototype.age = function(){ 
    this.age = new Date().getFullYear() - this.dob; 
} 

var person = new Person('First','Last',2004); 

该原型允许您将方法年龄添加到Person的每个实例。

如果您正在学习,请尝试使用console.log方法在Web检查器中显示输出。例如:

console.log(person); 
+0

对象文字给我“年龄”:null – Developer

+0

@Developer - 对不起 - 更新了代码 – user2182349

1

,因为还没有创建对象无法访问this.dob属性。 请检查以下代码。

<!DOCTYPE html> 
 
    <html lang="en"> 
 
\t <head> 
 
\t \t <script> 
 
\t \t \t var person = {fname: "Asha",lname: "Juma",dob: 2005}; 
 
     person.age = (new Date().getFullYear()-person.dob); 
 

 
\t \t \t function print() { 
 
\t \t \t \t alert(JSON.stringify(person)); 
 
\t \t \t } 
 
\t \t </script> 
 
\t </head> 
 
\t <body> 
 
\t \t <p>Lets hit this button to alert the user of the person object contents</p> 
 
\t \t <button onclick=print()>Click Me!</button> 
 
\t \t 
 
\t </body> 
 
    </html>