Есть несколько различных способов сделать это с различной эффективностью, в зависимости от того, насколько хорош ваш оптимизатор запросов, и относительного размера ваших двух таблиц:
[g2] Это самое короткое утверждение, и оно может быть самым быстрым если ваша телефонная книга очень короткая: [/g2]function chkboxToggle() {
if ($('input#chkbox').attr('checked'))
// do something
else
// do something else
}
[g3] альтернативно (благодаря Alterlife
) [/g3]<input id="chkbox" type="checkbox" onclick="chkboxToggle()" />
[g4] или (благодаря WOPR) [/g4] [f3] [g5] (игнорируя тот факт, что, как уже говорили другие, обычно лучше выбирать только нужные столбцы, а не '[f4]') [/g5] Основная цель методов экземпляра в модулях состоит в том, чтобы дать ту функциональность классам, которые включают ее.
"При смешивании в" модуле, этот путь обычно используется в качестве метода моделирования множественного наследования, или в других ситуациях, где наследование не является правильной парадигмой (не совсем идеальными "являются" отношения), но Вы хотите совместно использовать поведение. Это - еще один инструмент для хранения кода DRY.
Хороший пример этого в базовом Ruby отмечает как Array
и Hash
может и быть перемещен и отсортирован, и т.д. Каждый из них получает эту функциональность от Enumerable
модуль (each_with_index
, select
, reject
, sort
и больше все определяется во включенном модуле, не в классах).
Мой ответ был бы: "нет Вы не можете назвать методы экземпляра модуля без первого расширения или включая тот модуль в классе"
теперь зная рубин и весь обман метапрограммирования это содержит там, вероятно, способ назвать его, но это было бы вне надлежащего использования модулей
module Tester
def inst_meth
puts "test inst meth\n"
end
def self.meth
puts "test self meth\n"
end
end
begin
Tester.meth
rescue;
puts $!
end
begin
Tester.inst_meth
rescue
puts $!
end
begin
Tester.new.inst_meth
rescue
puts $!
end
begin
extend Tester
inst_meth
rescue
puts $!
end
begin
include Tester
inst_meth
rescue
puts $!
end
дает
>ruby test.rb
test self meth
undefined method `inst_meth' for Tester:Module
undefined method `new' for Tester:Module
test inst meth
test inst meth