javascriptprototypemicr

Javascript prototype extension method


I have a prototype model where I need to include the following extension methods into the prototype:

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

Example: [JS]

sample = function() {
    this.i;
}

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

In the prototype model, how can I use the extension methods or any other way to create extension methods in JS prototype model.


Solution

  • Calling the new method on string:

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

    should be as simple as:

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

    For your second example, I assume you want a constructor that sets the member variable "i":

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

    You can use this as follows:

    var s = new sample(42);
    alert(s.get_data()); //alerts 42