thể trùng lặp:
What's the best way to define a class in javascriptLàm thế nào để bạn viết một lớp trong Javascript?
Làm thế nào để bạn viết một lớp trong Javascript? Thậm chí có thể không?
thể trùng lặp:
What's the best way to define a class in javascriptLàm thế nào để bạn viết một lớp trong Javascript?
Làm thế nào để bạn viết một lớp trong Javascript? Thậm chí có thể không?
Javascript sử dụng OO dựa trên nguyên mẫu theo mặc định.
Tuy nhiên, nếu bạn đang sử dụng thư viện mẫu, ví dụ, bạn có thể sử dụng Class.create().
http://prototypejs.org/api/class/create
Nó sẽ cho phép bạn tạo ra (hoặc thừa kế) một lớp, sau khi bạn sẽ nhanh chóng trường hợp của nó với mới.
Các thư viện khác có thể có các cơ sở tương tự.
Một số có. jQuery không, vì nó hy vọng rằng bạn sẽ có nhiều khả năng đối phó với các bộ sưu tập jQuery hơn là với các lớp. – Nosredna
function Foo() {
// constructor
}
Foo.prototype.bar = function() {
// bar function within foo
}
Tôi nghĩ bạn có thêm "hàm" ở đầu 'bar'. :-) –
Vâng. Ngoài ra, đừng quên đề cập rằng bạn phải sử dụng Foo mới(). – alamar
Rất tiếc cố định, vì vậy không được sử dụng để viết javascript oo. –
Đó là "loại" có thể. Prototype có một số trợ giúp được tích hợp sẵn để viết các lớp trong JS. Hãy xem this thorough description về cách bạn có thể làm điều đó.
var namedClass = Class.create({
initialize: function(name) {
this.name = name;
}
getName: function() {
return this.name;
}
});
var instance = new namedClass('Foobar');
JavaScript dựa trên các đối tượng chứ không phải lớp. Nó sử dụng thừa kế prototypal, không phải thừa kế cổ điển.
JavaScript dễ uốn và dễ mở rộng. Kết quả là, có rất nhiều thư viện bổ sung thêm tính cổ điển vào JavaScript. Tuy nhiên, bằng cách sử dụng chúng, bạn có nguy cơ viết mã rất khó cho hầu hết các lập trình viên JavaScript làm theo.
Nếu bạn sử dụng thư viện như nguyên mẫu hoặc jQuery thì dễ dàng hơn nhiều nhưng cách cũ là làm điều này.
function MyClass(){
}
MyClass.prototype.aFunction(){
}
var instance = new MyClass();
instance.aFunction();
Bạn có thể đọc thêm về nó ở đây http://www.komodomedia.com/blog/2008/09/javascript-classes-for-n00bs/
Vâng, JavaScript là một ngôn ngữ dựa trên nguyên mẫu, nó không có lớp học, nhưng bạn có thể có thừa kế cổ điển, và các mẫu tái sử dụng hành vi khác thông qua nhân bản đối tượng và tạo mẫu.
bài được khuyến nghị:
Ack. "javascript" đã được chỉnh sửa thành "Javascript" thay vì "JavaScript". – Nosredna
Tôi thích jAvAsCrIpt. Đó là cách chính xác. –