2010-02-20 21 views
8

संभव डुप्लिकेट:
Can somebody explain this Javascript method ?यह अभिव्यक्ति क्यों सच होती है?

(x = [].reverse)() === window // true 

किसी भी विचार क्यों?

+1

कोड का सबसे व्यर्थ टुकड़ा कभी, लिखा है जब तक कि यह वास्तव में एक मस्तिष्क चिढ़ाने के रूप में लिखा गया था की तरह मुझे लगता है। आपको यह कहाँ से मिला? –

+3

डुप्ले: http://stackoverflow.com/questions/2261342/can-somebody-explain-this-javascript-method/2261394#2261394 – bobince

+0

@ एंडी ई: मैंने इसे यहां देखा: http://wtfjs.com/page/ 3 –

उत्तर

2

(x=[].reverse)() === window // true

पहली बार में यह एक समझ में नहीं आता था, लेकिन मुझे लगता है कि यह आसान है: पहले एक्स, सरणियों के रिवर्स समारोह हो जाता है तो यह this === window साथ कहा जाता है। तो यह window.reverse() की मात्रा है। बस इसे देखा, और रिवर्स() जगह पर काम करता है, इसलिए window.reverse() === window - हालांकि यह पहले से काफी अलग है।

मैं इस लिंक से इस जवाब मिल गया

http://news.ycombinator.com/item?id=1122004

+6

कम से कम लिंक जहां से आप इसे http://news.ycombinator.com/item?id=1122004 –

+1

से प्राप्त करते हैं। '(x = []। रिवर्स)()' 'Array.prototype.reverse.call (null)' के बराबर है, जिसका अर्थ है ''' '' रिवर्स' के लिए वैश्विक वस्तु होगी, यानी 'विंडो' – vava

+0

अब ठीक है आपके लिए mr.çağdaş – ratty

संबंधित मुद्दे