gpt4 book ai didi

javascript - 动态生成的方法

转载 作者:行者123 更新时间:2023-12-03 10:01:45 24 4
gpt4 key购买 nike

在 Pro javascript Technique 书中找到这个例子

function User( name, age ) {
var year = (new Date()).getFullYear()-age;
this.getYearBorn = function(){
return year;
};
}
var user = new User( "Bob", 44 );
alert(user.getYearBorn()); //system date is 2010 ,alerts 1967

我将系统日期更改为 2012

alert(user.getYearBorn()); //alerts 1968.

根据上面的逻辑我写了下面的代码

function Test(bornTime){
var ageInMillis = new Date().getTime()-bornTime.getTime();
this.age = function(){
console.log("age:"+ageInMillis);
}
}

var t = new Test(new Date());
t.age(); //output is zero
setTimeout(t.age,1000) // it prints 0

第二次调用 t.age 不应该打印 1000,我做错了什么吗?

最佳答案

您不需要重新计算ageInMillis;它将打印您调用 new 时的内容。

为了获得您期望的行为,您需要:

function Test(bornTime) {
this.age = function() {
var ageInMillis = new Date().getTime() - bornTime.getTime();
console.log("age:" + ageInMillis);
}
}

关于javascript - 动态生成的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8683874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com