→ grence:javascript arguments[] 02/28 01:58
喔喔喔真的ㄟ!
其實小弟剛剛有想到y大(似乎是同校的XD)講的,就是把function當成object傳遞過去
但是後來想到說這樣是不是就不能傳遞參數了呢?
像是這種情況
function changeinputtext(inputname) {
改變某一個文字欄位的值
}
calendar.hide(changeinputtext("abc"));
似乎就不行了
修正一下剛剛發現似乎要用
calendar.hide("changeinputtext('abc')");
這樣比較合理XD
還是說要用callback的話,應該是改成
calendar.hide(function() { changeinputtext("abc"); });才對呢?
(不過這也是小弟最常見的寫法)
因為第一次想到要寫這種會有callback的程式,所以才想說能不能用
比較符合一般設計習慣的做法來呼叫自訂函式呢XD
那就先謝謝板上的前輩了XD
※ 引述《ybite (小犬)》之銘言:
: ※ 引述《Kelunyang (可倫)》之銘言:
: : 是這樣的,小弟現在有用一款JavaScript的日曆,但是並不大符合小弟的需求
: : 所以想說乾脆重新寫一個,但是這個日曆有個好處是他可以設定使用者在完成
: : 某一的動作之後,直接呼叫另外一個函式處理,就像是Ajax裡面的onreadystate
: : 這樣
: : 比如說 calendar.hide(send)
: : 這樣就會執行send那個函式
: : 那小弟現在是想請問說,這樣hide那個函式應該是用eval(),才能夠適應
: : 不同的函式名稱囉?
: : 或者是這樣的需求有另外一種作法
: : 大概就是這樣了,先謝謝版上前輩的回應<(_ _)>
: 剛剛回錯了,自刪 = =
: 不需要用eval
: JavaScript的function其實很方便,可以這樣做 xD
: var calendar = {}; // 初始化Calendar object
: calendar.hide = function (callback) {
: if (typeof callback != 'function') { return false; } // 安全考量
: /* 在這裡做你想要的事情 */
: callback(); // 執行callback傳入的函數
: }
: 所以你可以這樣呼叫
: calendar.hide(function() { window.alert('Hello World!'); } );
--
新的Blog歡迎大家多多參觀喔~
http://kelunyang.wordpress.com
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.220.37.199
※ 編輯: Kelunyang 來自: 61.220.37.199 (02/27 18:22)