【问题标题】:How to call a function on string jQuery如何在字符串 jQuery 上调用函数
【发布时间】:2013-11-19 00:20:29
【问题描述】:

我正在通过fluent api阅读我有一个疑问。

我想接收一个字符串,在该字符串上调用 jQuery 函数或示例

功能

function compareThis(newString) {
    function compare(newString) {
        if (this == newString) {
            alert("same string");
        } else {
            alert("differnt string");
        }
    }
}

它被称为

("alerting").compareThis("alerted").compare();  //alert 'different string'

我不想将数据/字符串作为参数传递,而是按要求传递。

JSFiddle

注意:我想在类似的情况下调用该函数,例如查找日期间隔等

【问题讨论】:

    标签: javascript jquery string parameter-passing


    【解决方案1】:

    你可以使用原型给String类添加函数:

    String.prototype.compare = function(newString){
        if (this == newString) {
           alert("same string");
        } else {
            alert("differnt string");
        }
    };
    

    我认为你应该为你的函数调整代码,但这就是想法。

    【讨论】:

    • 是的,如果你使用 Date 而不是 date ;)
    • 你真的应该这样做if (this.valueOf() === newString) {
    • @Getz 我如何将它包含在小部件中?我尝试在小部件中使用此功能但失败了。
    【解决方案2】:

    也许我错过了解释,但是看起来你需要一种方法链接来比较字符串。为此,您可以创建一个变量并在其中创建函数。

    var compare = (function(){
    
        var thisString;
        var stringToCompare;
    
        var create = function(sVal) {
            thisString = sVal;
            return this;
        };
    
        // Public
        var compareThis = function(sVal) {
            stringToCompare = sVal;
            return this;
        };
    
        var compare = function(anotherString) {
            return thisString == stringToCompare;
        };
    
        return {
            create: create,
            compareThis: compareThis,
            compare: compare
        };
    
    }());
    
    var b = compare.create('test').compareThis('test').compare();
    alert(b);
    

    例如fiddle

    【讨论】:

      猜你喜欢
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-20
      • 1970-01-01
      相关资源
      最近更新 更多