การใช้งาน __noSuchMethod__ ใน javascript

ก่อนหน้านี้เคยแนะนำการใช้งาน __call() method ใน php มาแล้ว วันนี้จะเอา function __noSuchMethod__ มาแนะนำหลักการทำงานเหมือนกับการใช้งาน __call() ใน php เลย คือถ้ามีการเรียก method ที่ยังไม่ได้มีการสร้างไว้ มันก็จะเข้ามาทำงานใน method นี้ อย่างเช่นในตัวอย่างในรูปข้างล่างเราทำการเรียก method foo ซึ่งไม่ได้มีอยู่จริง ทำให้เข้าไปทำงานใน method ที่ชื่อว่า __noSuchMethod__ แทน และใน method นี้จะรับ parameter 2 ตัว คือตัวแรกจะเป็นชื่อ function ที่เรียก เช่นในตัวอย่างเราเรียก method foo ตัวแปรตัวแรกเราจะได้ค่าเป็น foo และตัวที่สองเป็น arguments ที่ส่งเข้ามาจะถูกส่งเข้ามาเป็น array

หลังจากพูดถึงความน่าสนใจของการใช้งาน __noSuchMethod__ ไปเรียบร้อยแล้ว ก็จะบอกข่าวร้ายว่าปัจจุบันยังใช้งานได้แค่ Firefox เท่านั้น (มาทำให้อยากแล้วจากไป ^_^) ส่วน webkit ยังไม่ support แต่เห็นมีข่าวว่ามีการบรรจุเข้าไปในแผนพัฒนา หวังว่าคงจะเอามาใช้งานได้ในเร็วๆนี้ แล้วก็ยังไม่ได้ลองใน opera และ IE เลยยังไม่รู้ว่าเป็นยังไง ฝากเอาไปทดลองกันดูละกัน ได้ผลยังไงก็บอกกันด้วยนะครับ

สามารถเข้าไปทดลอง code ได้ที่นี่ (เปิดด้วย Firefox เท่านั้น)
http://jsfiddle.net/irobust/LBxBw/