2013-07-08 7 views
5

Node.JS v0.11.3 tuyên bố có hỗ trợ cho các biểu tượng ECMAScript 6 với cờ --harmony_symbols (xem here). Dự thảo mới nhất saysBiểu tượng hoạt động như thế nào?

Properties are identified using key values. A key value is either an ECMAScript String value or a Symbol value.

Tôi đã thử ví dụ sau

var mySymbol = new Symbol('Test symbol'); 
console.log(mySymbol.name); // prints 'Test symbol', as expected 

var a = {}; 
a[mySymbol] = 'Hello!'; 

nhưng tôi nhận được một lỗi trên dòng cuối cùng

TypeError: Conversion from symbol to string

Làm thế nào để những biểu tượng làm việc? Ví dụ của tôi có sai hay không Node.JS thực sự là không phải là biểu tượng hỗ trợ?

+2

Tôi thậm chí không thể tìm thấy 'Symbol' constructor trong dự thảo mới nhất. –

+0

Điều đó chỉ mô tả loại dữ liệu * *. Ví dụ, ở trên, bạn sẽ thấy 'The Null Type'. Không có hàm xây dựng 'Null' nào cả. –

+0

@Randomblue: Đó chỉ là mô tả về loại 'Biểu tượng'. Không có đặc tả của một hàm tạo 'Symbol()' để tạo chúng, giống như bạn đã sử dụng nó. Dự thảo chưa hoàn thành :-) – Bergi

Trả lời

2

Bạn nên cố gắng mà không new:

var mySymbol = Symbol('Test symbol'); 
console.log(mySymbol.name); // prints 'Test symbol', as expected 

var a = {}; 
a[mySymbol] = 'Hello!';