我试图向String添加一个getter方法,以便可以像这样调用它:
'make me bold'.bold
没有括号。以下是我试图定义函数的方法,如here所述。
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>');
});
您需要使用Object.defineProperty:
Object.defineProperty(String.prototype, 'bold', { get: 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())