作者TKirby ( ^-^)
看板Web_Design
标题Re: [问题] JavaScript 指定 function问题..
时间Fri Jan 20 22:12:06 2006
不太清楚你的问题
函式中可以呼叫其它函式 递回也是可以的
函式本身也是物件, 所以可以用 new Function("..code..") 的方式宣告
甚至也可以在函式中宣告函式
比方说
function FEMC() {
function AKD() {
/* ..blah.. */
}
AKD();
}
(function FEMC() {...} 可以想成是 var FEMC = new Function("...");)
这时候函式的 scope 就很有趣了
详情请参考 Programming Language 的教科书
要有良好的概念,就要知道 function 跟 object, array 一样
都是一个物件
function 变数可以以後面加括号的方式来执行
所以说,你也可以弄 function 阵列:
var fa = new Array(new Function("alert('1');"),new Function("alert('2');"),..);
然後 fa[0](); fa[1](); 来执行
也可以写串接 function :
function flist(next,func) {
var that = this;
function rfunc() { that.func(); if(next) that.next.run(); }
this.next = next; this.func = func; this.run=rfunc;
}
然後
head = new flist(new flist(new flist(null,blah1),blah2),blah3);
head();
也可以动态产生 function:
var userinput = document.getElementById("input").value;
userfunction = new Function(userinput);
再配合 eval 跟 setTimeout 就更邪恶了
因此在 javascript 中所谓的成员函式(或方法) 也就只是另一个成员变数罢了
※ 引述《milen (OOXX点点点)》之铭言:
: 今天才在看java script
: 所以跑来翻旧文= ="
: 请问一下....
: 函数之中不可再呼叫其他函式吗?@@"
: 但却又可以跑递回?
: 书中对类似函式的需求是去设定方法(method)就是了@@"
: ※ 引述《TKirby ( ^-^)》之铭言:
: : 你可以参考一下2128篇, "R: [问题] 请教一个javascript语法"
: : onchange = OnChangeBrand(..); 代表把 onchange 设成函式执行後的值
: : 而不是把 OnChangeBrand 设成 onchange 会去执行的函式
: : 这样写就没问题了 :
: : obj1.onchange=function (obj1, a) {
: : ...
: : }
: : 可以再稍微包装一下让这个函式可以重复利用
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.52
1F:推 milen:fa阵列对现在的我来说已经邪恶到极点了@@"其他领悟中>"< 01/20 22:50
2F:推 PsMonkey:这篇可以借转吗? 01/20 23:12
3F:→ TKirby:可以 :p 01/20 23:14