dụ:Điều gì sẽ xảy ra với biến "var" bên trong Trình tạo JavaScript?
function Foo() {
this.bla = 1;
var blabla = 10;
blablabla = 100;
this.getBlabla = function() {
return blabla; // exposes blabla outside
}
}
foo = new Foo();
gốc câu hỏi:
Tôi biết bla rằng sẽ được gán cho mỗi thể hiện của Foo. Điều gì sẽ xảy ra với blabla?
mới câu hỏi:
những gì tôi hiểu bây giờ:
this.bla = 1; // will become an attribute of every instance of FOO.
var blabla = 10; // will become a local variable of Foo(**not** an attribute of every instance of FOO), which could be accessed by any instance of FOO only if there's a method like "this.getBlabla".
blablabla = 100; // will define a **new** (or change if exist) global(window) variable.
Did i understand correctly?
Ví dụ đã chỉnh sửa của bạn là chính xác - XÁC NHẬN rằng 'blabla' là UNIQUE để MỌI TRẢ LỜI của' Foo'. Vì vậy, nếu 'Foo' trông giống như' hàm Foo (số) {var blabla = number; this.bla = 37; this.getBlaBla = function() {return blabla; }; } 'sau đó' myFoo = new Foo (32); 'và' yourFoo = new Foo (47); 'sẽ có các giá trị hoàn toàn khác nhau cho' .getBlaBla() '. 'myFoo.getBlaBla() === 32; yourFoo.getBlaBla() === 47; 'Điều quan trọng cần nhớ là mặc dù nó là một' giá trị có phạm vi cục bộ' mà nó là duy nhất cho mỗi cá thể, và sẽ không có cùng giá trị cho bất kỳ Foo nào để đọc/ghi theo cách chia sẻ. – Norguard