01/10/2018, 13:43

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!

Zhang Jike viết 15:48 ngày 01/10/2018

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 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

Aragami1408 viết 15:55 ngày 01/10/2018

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

Tien Nguyen viết 15:52 ngày 01/10/2018

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.

Aragami1408 viết 15:50 ngày 01/10/2018

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

Nguyen Ca viết 15:48 ngày 01/10/2018

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ý.

明玉 viết 15:49 ngày 01/10/2018

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

Quang Le viết 15:51 ngày 01/10/2018

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!

Bài liên quan
0