如何将getter方法添加到内置的String对象中?

时间:2018-03-03 17:34:01

标签: javascript function methods built-in

我尝试将一个getter方法添加到String中,以便可以这样调用它:

'make me bold'.bold

没有括号。以下是我尝试定义函数的方法,如here所述。

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

它说defineProperty不是一个功能。如果我拿出原型,它也不起作用。看起来可以使用&#39; String.prototype。 defineGetter &#39;但是说它被弃用了:

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

2 个答案:

答案 0 :(得分:2)

您需要使用Object.defineProperty:

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

答案 1 :(得分:0)

您可以将该功能添加到原型中:

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

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