下面这个简单的函数是什么意思呀能具体详细解释一下吗

disabled(current) {

return current && current.valueOf() > Date.now();

}

阅读 3.4k
5 个回答

// 可能楼主不太理解valueOf

Object.prototype.valueOf()
该方法返回的是用基本类型所表示的this值,如果它可以用基本类型表示的话。如果Number对象返回的是它的基本数值,而Date对象返回的是一个时间戳(timestamp)。如果无法用基本数据类型表示,该方法会返回this本身。

// Object
var o = {};
typeof o.valueOf(); // 'object'
o.valueOf() === o; // true
// Number
var n = new Number(101);
typeof n; // 'object'
typeof n.vauleOf; // 'function'
typeof n.valueOf(); // 'number'
n.valueOf() === n; // false
// Date
var d = new Date();
typeof d.valueOf(); // 'number'
d.valueOf(); // 1503146772355

以上这段摘抄自我的文章JavaScript 对象所有API解析
有了这些知识点后,参数current应该是一个日期对象。
Date.now()是获取当前时间的时间戳。MDN文档 Date.now()
// 比如现在的时间戳是1507824803822
如果不是很理解逻辑与,可以看看MDN文档 逻辑运算符&&
对于一些知识不了解,可以多查查MDN Web 技术文档,知识点还是比较详细。比如MDN搜索下valueOf,有很多结果。

判断current这个时间与当前时间的大小吧

判断当前时间是否可以禁用,也就是是否可以选择

根据当前时间判断是否禁用的功能

if (current) {
    if ( current.valueOf() > Date.now() ) {
        //“current”晚于当前时间
        return true
    }else {
        //‘current’早于当前时间
        return false
    }
} else {
    return false
}
推荐问题
宣传栏