Không hiểu cách khai báo biến trong javascript

Mọi người cho em hỏi là cách khai báo var app = new function như trong hình là sao vậy ạ, em không hiểu cách viết này của tác giả. Anh(chị) giải thích rõ ý của tác giả giúp em với ạ. Em cảm ơn!

Function trong javascript là first-class function. Tức là bạn có thể gán function vào một biến hay khởi tạo 1 function như 1 class. Ở đây mình nghĩ tác giả không có ý gì lắm :smiley: nó chỉ là một cách viết thôi. Để thể hiện một class trong javascript thì người ta phải dùng đến function. Có thể đặt tên khai báo class trước rồi new sau. Hoặc cũng có thể new luôn nếu bạn chỉ muốn tạo 1 instance của class đó. Mình nghĩ vậy :sweat_smile:

2 Likes

bạn học phần object của javascript đi

Mình hiểu biến app là 1 đối tượng nhưng thấy hơi khó hiểu vì cách khai báo của nó. Bạn có cách viết nào dễ hiểu hơn từ code ở trên không.

Viết kiểu kiểu pseudo nhé:
var app = {
property1 : value1,
property2 : value2,
method1 ; function() {
}
}

1 Like

Có dụng ý cả đấy,
thông thương sẽ viết thế này

function Apple (type) {
this.type = type;
this.color = “red”;
this.getInfo = getAppleInfo;
}
sau đó khai báo a = new Apple();
b= new Apple()//
Như vậy có thể tạo nhiều instance được
còn viết kiêu trên để tạo singleton object, nghĩa là chỉ cho phép 1 object được tạo, 1app thì chỉ có 1 instance duy nhất, nó hợp lý.

6 Likes

Bạn có thể coi nó như anonymous class :bust_in_silhouette:

2 Likes

thứ nhất tác giả muôn “gói” code của mình vào trong một biến toàn cục duy nhất là app
thế sao đơn giản không dùng đối tượng đơn giản như:
var app = { }
Lý do vì Javascript chỉ có function mới tạo đc scope mới cho var.
Nếu chỉ dùng object đơn thuần thì các biến tạo trong object đó vẫn “vấy bẩn” global scope.

Tại sao lại sợ “vấy bẩn” global scope. Đó là vì trang web có thể load bao nhiêu chương trình JS tùy thích,
nếu chẳng may các chương trình đặt tên biến trùng nhau sẽ gây xung đột.

function trong JS cũng chỉ là một object nhưng nó tạo đc scope mới cho variable. That’s all!

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?