我知道这是不受欢迎的,我只是在探索这个想法,因为我的生活似乎无法按照我想要的方式来完成这项工作。
这个例子应该解释所有:
String.prototype.MyNS = function() {}
String.prototype.MyNS.fooify = function() {
return this + 'foo!';
}
var theString = 'Kung';
alert(theString.MyNS.fooify());
当然,这只是简单地将函数定义附加到' foo' ...添加此()而不起作用。
据我所知,我在那里失去了背景,但无法弄清楚如何使原件发射并给我我想要的东西。
答案 0 :(得分:7)
这是你可以做到的一种方式:
String.prototype.MyNS = function() {
var _this = this;
return {
fooify: function() {
return _this + 'foo!';
}
};
}
注意,正如slashingweapon指出的那样,你必须像这样调用它:
String.prototype.MyNS().fooify();
据我所知,没有跨浏览器方式可以做到这一点而无需将MyNS
作为函数调用。
答案 1 :(得分:1)
您正在向function
class
添加新的String
(oo条款prototype
),并且无法访问实际的String
实例。
您可以直接将属性添加到原型中:
String.prototype.fooify = function() {
return this + 'foo!';
}
var theString = 'Kung';
alert(theString.fooify());