Javascript计算给定年份的年龄

时间:2017-03-05 13:23:42

标签: javascript html

在学习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;
&#13;
&#13;

2 个答案:

答案 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>