Trong ví dụ của bạn, không có sự khác biệt giữa
jQuery(this)[ state ? "show" : "hide" ]();
và
state ? jQuery(this).show() : jQuery(this).hide();
Tuy nhiên, quảng trường có thể được sử dụng để gọi một chức năng mà không có nó là tên:
var myFunctionName = 'show';
jQuery(this)[ myFunctionName ]();
Tại sao điều này hữu ích? Trong ví dụ trên, nó hoàn toàn vô dụng. Nhưng chúng ta có thể tìm thấy một số tình huống mà nó có thể tốt đẹp:
// list of available methods
var effects = [ 'hide', 'slideUp', 'fadeOut' ];
// get a random index between 0 and effects.length-1 (2 in this case)
var randomIndex = Math.floor(Math.random() * (effects.length));
// get the method name
var methodToCall = effects[ randomIndex ];
jQuery(this)[ methodToCall ]();
Đoạn mã này sẽ chọn một phương pháp ngẫu nhiên và gọi phương thức đó trên đối tượng jQuery. Điều đó không tốt sao?:)
Cảm ơn. Giải thích rõ ràng. – DADU
Điều mới học được - tắt bộ não cho phần còn lại của ngày :) – Archer