在学习Javascript时,我试图提醒用户对象内容,前三个是显示但功能年龄部分没有功能,请协助
<!DOCTYPE html>
<html lang="en">
<head>
<script>
var person = {fname: "Asha",lname: "Juma",dob: 2005,age:function(){(new Date().getFullYear() - this.dob);}};
function print() {
alert(JSON.stringify(person));
}
</script>
</head>
<body>
<p>Lets hit this button to alert the user of the person object contents</p>
<button onclick=print()>Click Me!</button>
</body>
</html>
&#13;
答案 0 :(得分: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);
答案 1 :(得分:1)
您无法访问this.dob
属性,因为仍未创建对象。
请查看以下代码。
<!DOCTYPE html>
<html lang="en">
<head>
<script>
var person = {fname: "Asha",lname: "Juma",dob: 2005};
person.age = (new Date().getFullYear()-person.dob);
function print() {
alert(JSON.stringify(person));
}
</script>
</head>
<body>
<p>Lets hit this button to alert the user of the person object contents</p>
<button onclick=print()>Click Me!</button>
</body>
</html>