我有这个函数返回一个对象:
String.prototype.test = function(a,b){
var ob = {};
ob[a] = b;
return this || ob
}
//usage
"Test".test('hi','hello');
如果.hi
未附加到测试中,我希望它返回字符串。
所以我需要这个例子:
"Test".test('hi','hello').hi;//returns: hello
要工作,但我还需要:
"Test".test('hi','hello'); //returns Test
为了工作,我尝试在回复中使用||
,但它不起作用。谢谢你的帮助。
答案 0 :(得分:3)
不可能使返回值取决于返回值发生的情况。
但是,您可以返回包含属性String
的{{1}}对象:
不要在任何生产代码中执行此操作,这非常难看,没有人期望它。
hi
同样,不要在任何生产代码中执行此操作,这非常难看,没有人期望它。
演示:
String.prototype.doStuffThatNobodyExpects = function(a, b) {
var s = new String(this);
s[a] = b;
return s;
};
答案 1 :(得分:2)
这是一个尴尬的结构,你想要的,但是......
String.prototype.test = function(a,b){
this[a]=b;
return this;
}
//usage
document.write("Test".test('hi','hello'));
document.write("Test".test('hi','hello').hi);
jsFiddle:http://jsfiddle.net/XUcYy/