6

我有一个原型模型,我需要在原型中包含以下扩展方法:

String.prototype.startsWith = function(str){
    return (this.indexOf(str) === 0);
}

示例:[JS]

sample = function() {
    this.i;
}

sample.prototype = {
    get_data: function() {
        return this.i;
    }
}

在原型模型中,如何使用扩展方法或任何其他方式在 JS 原型模型中创建扩展方法。

4

3 回答 3

13

在字符串上调用新方法:

String.prototype.startsWith = function(str){
    return (this.indexOf(str) === 0);
}

应该很简单:

alert("foobar".startsWith("foo")); //alerts true

对于您的第二个示例,我假设您需要一个设置成员变量“i”的构造函数:

function sample(i) { 
    this.i = i;     
}

sample.prototype.get_data = function() { return this.i; }

您可以按如下方式使用它:

var s = new sample(42);
alert(s.get_data()); //alerts 42
于 2009-09-11T09:11:18.443 回答
1

构造函数应该以大写字母开头。

function Sample(i) { 
    this.i = i;     
}

var s = new Sample(42);
于 2009-09-11T09:57:51.920 回答
0

不确定这有多正确,但请尝试此代码。它在 IE 中为我工作。

添加 JavaScript 文件:

String.prototype.includes = function (str) {
    var returnValue = false;

    if(this.indexOf(str) != -1){

        returnValue = true;
    }

    return returnValue;
}
于 2017-07-06T05:30:13.553 回答