2009-09-11 44 views
6

Tôi có một mô hình mẫu mà tôi cần phải bao gồm các phương pháp sau mở rộng thành nguyên mẫu:javascript prototype mở rộng phương pháp

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

Ví dụ: [JS]

sample = function() { 
    this.i; 
} 

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

Trong mô hình nguyên mẫu, làm thế nào tôi có thể sử dụng các phương pháp mở rộng hoặc bất kỳ cách nào khác để tạo các phương thức mở rộng trong mô hình nguyên mẫu JS.

Trả lời

13

Gọi phương thức mới trên chuỗi:

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

nên càng đơn giản như:

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

Ví dụ thứ hai của bạn, tôi giả sử bạn muốn có một constructor mà bộ biến thành viên "i" :

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

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

Bạn có thể sử dụng như sau:

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

tôi cần phải thêm tha methos startswith bên trong nguyên mẫu mẫu .. hw để làm tat ... – Santhosh

+3

Xin lỗi, không chắc là tôi hiểu những gì bạn muốn sau đó –

+0

không prob thnk 4r ur help .. – Santhosh

1

Chức năng của người xây dựng nên bắt đầu bằng chữ cái viết hoa.

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

var s = new Sample(42); 
0

Không chắc chắn điều này đúng, nhưng hãy thử mã này. Nó làm việc trong IE cho tôi.

Thêm vào tập tin JavaScript:

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

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

     returnValue = true; 
    } 

    return returnValue; 
} 
Các vấn đề liên quan