Javascript 将 getter 设置为类本身

标签 javascript getter

我找到了很多代码来在一个类中创建 getter 和/或 setter,但没有一个是完整的。 我的意图是能够进行比较 (new Time()>myTime) 等操作

function Time(hours,minutes,seconds,milliseconds){
    // ...
    return this.format()
}

Time.prototype = {
    format: function(format){
        return this.replace(...) // return in HH:MM:SS MMM format as default
    },
    // other methods...
}

http://codepen.io/Akxe/pen/VYvPdj

最佳答案

如果你想要自定义比较,你可以实现 Object.prototype.valueOf() .在使用 <、>、+ 等运算符时将对象强制转换为原语时使用。

例子

var Time = function (x) {
    this.x = x;
};
Time.prototype.valueOf = function () {
    console.log("valueOf() called");
    return this.x;
}

var a = new Time(1);
var b = new Time(2);

console.log(a > b);   // false
console.log(a < b);   // true
console.log(a + b);   // 3
console.log(a << 10); // 1024
console.log(a / b);   // 0.5

关于Javascript 将 getter 设置为类本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27233183/

相关文章:

java - getter 上的 NullPointerException

尽管删除了 getter,Javascript 还是不允许我设置只有 getter 的属性

ios - 对于 "look"类属性的方法,@property 和 getters/setters 之间有什么区别?

javascript - 如何选择,聚焦文本区域?

javascript - 无法链接 moment.js 库

javascript - 如何在 Sencha Touch 中添加数据到列表动态

c# - getter 中的"new"关键字 > 性能受到影响?

javascript - MongoDB 索引 - 提高搜索/查询性能

javascript - JQuery 日期选择器 : Disable dates explicitly enabled

java - Getters 和 Setters 出现未知错误