如何向内置 String 对象添加 getter 方法?

How do I add a getter method to the built in String object?

我试图向 String 添加一个 getter 方法,以便可以像这样调用它:

'make me bold'.bold

没有括号。这是我尝试定义函数的方式,如 所述。

String.prototype.defineProperty(window, 'bold', { get: function (input) {
  return ('</b>'+input+'</b>');
}});

虽然它说 defineProperty 不是一个函数。如果我取出原型也不起作用。看起来可以使用 'String.prototype.defineGetter' 但说它已被弃用:

String.prototype.__defineGetter__('bold', function (input) {
  return ('</b>'+this+'</b>');
});

您可以将该函数添加到原型中:

String.prototype.bold = function () {
  return ('</b>' + this + '</b>');
};

console.log('make me bold'.bold())
console.log('Ele from SO'.bold())

你需要使用Object.defineProperty:

Object.defineProperty(String.prototype, 'bold', { get: function (input) {
  return ('</b>'+this+'</b>');
}});