2013-10-12 13 views
40

Tôi đang xem mã nguồn góc 1,2, và tôi chỉ tò mò tại sao một số chức năng được đặt trước bằng hai dấu đô la. Đây có phải là một loại quy ước nào đó không?

+1

cũng xem: http://stackoverflow.com/questions/12648543/angularjs-and-its-use-of-dollar-variables –

+0

Wow, rất nhiều người khác đã tự hỏi điều tương tự haha. – ThinkingInBits

Trả lời

52
  • Độc $ cho dành riêng, định danh công
  • đúp $$ cho reserved tin định danh

Để trích dẫn docs:

$ Prefix Naming Convention

...

Nếu bạn kiểm tra Phạm vi, bạn cũng có thể nhận thấy một số thuộc tính bắt đầu bằng $$. Các thuộc tính này được coi là riêng tư và không được truy cập hoặc sửa đổi.

5

Nếu tôi có thể thêm:

Angularjs Docs

khác hơn chỉ là đáng kể cho Angularjs, các '$$' hoặc '$' chỉ là nhân vật được phép trong tên biến. Angularjs sử dụng cả hai để xác định ý nghĩa cho bạn và nhóm phát triển của riêng họ.

Bạn có thể đặt tên cho tất cả các biến của mình theo cùng một cách; nhưng để tránh va chạm tên, hãy tránh xa thực hành này. Dưới đây là một số ví dụ nếu bạn đã làm ...

$$$$myVariableName; $myVariableName$; _myVariableName_; $$$$$$myVariableName$$$$$$$$ 

đây là một liên kết để kiểm tra JS tên biến nếu bạn muốn:

Variable Name Validator

Dưới đây là một liên kết đến MDN cũng giải thích ký tự cho phép:

MDN allowed characters link

và đây là nội dung:

Biến

Bạn sử dụng các biến như tên mang tính biểu tượng cho các giá trị trong ứng dụng của bạn. Tên của các biến, được gọi là số nhận dạng, tuân theo các quy tắc nhất định.

Mã nhận dạng JavaScript phải bắt đầu bằng chữ cái, dấu gạch dưới (_) hoặc ký hiệu đô la ($); các ký tự tiếp theo cũng có thể là các chữ số (0-9). Vì JavaScript phân biệt chữ hoa chữ thường, các chữ cái bao gồm các ký tự "A" đến "Z" (chữ hoa) và các ký tự "a" đến "z" (chữ thường).

Bắt đầu với JavaScript 1.5, bạn có thể sử dụng các ký tự ISO 8859-1 hoặc Unicode chẳng hạn như å và ü trong số nhận dạng. Bạn cũng có thể sử dụng chuỗi thoát Unicode \ uXXXX làm ký tự trong số nhận dạng.

Một số ví dụ về tên pháp lý là Number_hits, temp99 và _name.

Angulajs bao gồm khá nhiều thông tin trong từng đối tượng; một số mục dành cho Angularjs và một số là dành cho nhà phát triển, có nghĩa là một số có thể không chỉnh sửa được, nhưng tất cả đều có sẵn để tham khảo nếu đó là những gì bạn định sử dụng.

Tuy nhiên, trong các phiên bản sau, bất kỳ số nhận dạng cá nhân nào cũng có thể biến mất khi nhóm Angularjs dự kiến ​​nhà phát triển không sử dụng tên riêng/riêng.

Trong trường hợp của posted 'liên kết tương tự' đây là những gì Angularjs nói:

$ Prefix Naming Convention Bạn có thể tạo các dịch vụ của riêng bạn, và trên thực tế chúng tôi sẽ làm chính xác điều đó trong bước 11. Là một quy ước đặt tên, các dịch vụ tích hợp của Angular, các phương thức Phạm vi và một số khác Các API góc có tiền tố $ ở trước tên.

Tiền tố $ có trong không gian tên tại các dịch vụ do Góc cung cấp. Để tránh va chạm tốt nhất là tránh đặt tên cho các dịch vụ và mô hình của bạn bất cứ thứ gì bắt đầu bằng $.

Nếu bạn kiểm tra Phạm vi, bạn cũng có thể nhận thấy một số thuộc tính bắt đầu bằng $$. Các thuộc tính này được coi là riêng tư và không được truy cập hoặc sửa đổi.

Các vấn đề liên quan