có thể có nhiều hơn một hàm tạo cho một lớp trong javascript không? tức là một tham số có 0 tham số, một với một, một với hai tham số, v.v ...javascript: các hàm tạo khác nhau cho cùng một kiểu đối tượng
nếu có, như thế nào?
cảm ơn!
có thể có nhiều hơn một hàm tạo cho một lớp trong javascript không? tức là một tham số có 0 tham số, một với một, một với hai tham số, v.v ...javascript: các hàm tạo khác nhau cho cùng một kiểu đối tượng
nếu có, như thế nào?
cảm ơn!
Không, Javascript không hỗ trợ quá tải chức năng.
Tuy nhiên, bên trong mọi chức năng bạn có quyền truy cập vào arguments
object, giữ tất cả đối số được cung cấp cho hàm, được khai báo hay không. Bạn có thể chỉ cần nhìn vào nó và quyết định chính xác bạn muốn làm gì trong constructor của bạn.
Bad, unrefined dụ:
function Foo() {
function singleParamConstructor(foo) {
...
}
function twoParamConstructor(foo, bar) {
...
}
switch (arguments.length) {
case 1 :
singleParamConstructor(arguments[0]);
break;
case 2 :
twoParamConstructor(arguments[0], arguments[1]);
break;
...
}
}
điều này có thể giúp: JavaScript constructor parameter types
Những gì bạn muốn được gọi là "đa hình hàm constructor". xem http://www.highdots.com/forums/javascript/multiple-constructors-allowed-javascript-198415.html –
Bản sao có thể có của [mẫu JavaScript cho nhiều nhà xây dựng] (http://stackoverflow.com/questions/3220721/javascript-pattern-for-multiple-constructors) – Suma