繁体   English   中英

以两种不同方式使用函数

[英]Using a function in two different ways

我正在创建一个附加到其他函数的函数。

喜欢:

string("Hi").capitilize()//returns hi

我希望能够以两种不同的方式使用$$。string。 1正在将其附加到功能上。 第二个是单独的功能:

string("Hi")

那应该只是返回Hi。 但是我所得到的是: [object Object]

允许我执行第一个附加到函数的主要代码是:

var g = function (a) { 
        this._string = typeof a == "string" ? a : a.toString();
        return a;
}
var string = function (a) {
            return new g(a);
}

然后我有另一个变量,其中包含所有功能,然后将其与原型绑定。

如果我只有string(“ Hi”),是否可以使它仅返回字符串,并且如果添加它们,仍然允许函数正常工作?

基本问题是一个函数无法确定其返回值的位置。 到时,函数调用已结束. 运算符正在评估中,因此您的代码无法在此时进行任何操作。

现在,您可以做的是返回一个在其原型上具有toString()实现的对象,以便在将对象视为字符串的情况下使用该对象时,它将进行适当的转换。

var g = function (a) { 
        this._string = typeof a == "string" ? a : a.toString();
        return a;
}
g.prototype.toString = function() {
  return this._string;
}
var string = function (a) {
            return new g(a);
}
alert( new string("Hi") );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM