javascript: __noSuchMethod__

ใน parrot vm เรียกว่า fallback มั้ง. ประมาณว่าเราส่ง message (เรียก method) ไปที่ object แล้วมันไม่มี method ชื่อที่เราเรียกแล้วจะทำอะไรต่อ … ถ้าเป็น C++ หรือ Java ก็คง compile ไม่ผ่าน หรือเปล่า? ไม่ค่อยแน่ใจ. ถ้าเป็น ecmascript/javascript ก็อาจจะเกิด runtime error แต่ว่าเราก็ทำอะไรได้มากกว่านั้นโดยใช้ __noSuchMethod__ นี้ล่ะ. http://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object/noSuchMethod

มันคงเอาไปใช้ทำอะไรแบบ model.findByName, model.findById, model.findByLastName หรือชื่อ method ที่เปลี่ยนไปมามากมาย โดยอาจจะเปลี่ยนตาม column ของ database ในตัวอย่างนี้ จะเขียน method ดักไว้หมดก็คงไม่ไหว (แต่ไม่ทำแบบนี้ก็ได้นะ) … แน่นอนจบซะงั้น.

ป.ล. ผมไม่เคยอยากรู้มาก่อนเลย จนกระทั่ง nf ถาม

เพิ่มเติม: nf แจ้งว่าใช้กับ webkit ไม่ได้. สงสัยจะไม่ใช่ standard T_T … แต่ก็มีคน request ใน webkit https://bugs.webkit.org/show_bug.cgi?id=18058.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s