เหตุใดวิธีการฝังของ Twitter จึงใช้การปิด?

ใน https://dev.twitter.com/docs/embedded-timelines , twitter อธิบาย ในการฝังไทม์ไลน์ คุณต้องเพิ่มสองบรรทัดนี้ให้กับคุณ html :

<a class="twitter-timeline" href="https://twitter.com/twitterapi" data-widget-id="YOUR-WIDGET-ID-HERE">Tweets by @twitterapi</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

เหตุใดสคริปต์จึงใช้การปิดแทนที่จะทำวิธีที่ง่ายกว่านี้

<script>var d=document,s="script",id="twitter-wjs";var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);};</script>

person JulienFr    schedule 11.04.2014    source แหล่งที่มา


คำตอบ (1)


ขอบเขตฟังก์ชันให้ตัวแปรท้องถิ่นแก่คุณ

หากไม่มีฟังก์ชัน ขอบเขตของหน้าหลักจะเต็มไปด้วยสัญลักษณ์ เช่น d, s, id, js, fjs

บางทีอาจมีอย่างอื่นใช้สิ่งเหล่านั้น

จริงๆ แล้ว นี่ไม่ใช่การปิด แต่ค่อนข้างตรงกันข้าม การปิดคือฟังก์ชันที่รวบรวมบางส่วนของขอบเขตหลัก ดูเหมือนว่าพวกเขาจะระมัดระวังเป็นพิเศษ ไม่ ในการทำเช่นนั้น โดยอ้างอิงถึงพารามิเตอร์ของฟังก์ชันเท่านั้น แม้แต่ document จากขอบเขตหลักด้วยซ้ำ

person Thilo    schedule 11.04.2014