2012-03-08 36 views

Trả lời

10

Đó là do comma operator trả về toán hạng thứ hai (và đánh giá cả hai).

Các mã trong câu hỏi của bạn là tương đương với:

1; 
var global = eval('this'); 
alert(global); 
+0

buồn nhưng sự thật ... – powtac

+0

bạn có thể giải thích hoặc có thể là một số liên kết sẽ hữu ích quá, thực sự bối rối. –

+1

@Sheikh, tôi đã liên kết tới tài liệu MDN trong câu trả lời của tôi :) Về cơ bản, '(1, eval)' áp dụng toán tử dấu phẩy ',' cho '1' và' eval'. Toán tử đánh giá '1', sau đó đánh giá và trả về' eval'. Do đó, 'foo = (1, eval) (cái gì đó)' tương đương với '1; foo = eval (cái gì đó); –

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