我希望扩展String
类并添加一个简单的方法:
String.prototype.world = function(){
return " world";
}
我想做类似的事情:
"hello".world
然后返回"hello world"
。而不是做:
"hello".world()
调用不带括号的函数将返回函数对象。
我正在寻找的是执行函数而不是返回它(不指定括号)。
我可以用JavaScript以某种方式吗?
编辑:根据this,使用__defineGetter__
是非标准版并已弃用。寻找替代品。
答案 0 :(得分:4)
你可以使用setter getter来做到这一点。 jsfiddle。 IE<不支持setter getter 9;
function getter(){
return this + " world";
}
if(Object.__defineGetter__){ // chrome
String.prototype.__defineGetter__('world', getter);
}else{
Object.defineProperty(String.prototype, 'world', { // IE
get : getter
});
}
答案 1 :(得分:2)
您可以像这样定义一个getter:
String.prototype.__defineGetter__("world", function() {
return this + ' world';
});
'hello'.world // 'hello world'