js另类写法
实现功能估计貌似于这样:
var a = function(s){alert(s)};
var b = function(s){confirm(s)};
var aa = [a,b];
aa[1](1);
aa[0](2);
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
代码运行到 test() 后,要调用已经写好的方法 E() 并传递 2 个参数
一个就是所谓对象的 ju 、 另一个就是一个才写的函数
然后把这两个参数传递到了 E() 方法,当然,E()方法已经在等参数了
当他等到了许久不见的参数的时候会怎么做呢...(待续)
续简介:
上回说到 E() 方法见到了许久不见的参数 ju 和 一个函数
当然 E() 做为这两个参数的传递执行方法,就叫了两个小弟(变量 a, b)
来把他们的一切都引用了,此时
a = ju
b = function(b)
{
b(a);
if(a == "gyyy.")
{
b("G");
}
}
然后又 var c = C(a); 让 小弟(变量c) 得到了 a ,也就是 a 引用的 ju 长度
然后照着这个长度执行 小弟b 引用的那个传递到 E() 方法的函数
并传递 2 个参数给那个函数
一个就是 a[d],另一个就是d
然后呢,开始执行小弟 b ,现在这个小弟 b 就是一开始传递到 E() 方法的函数
而那个传递到 E() 方法中的函数接受一个参数 如右所示: function(b) { ... }
而现在执行的函数中的 b 是从E()方法传递过来的 a[d]
也就是说呢:您出错的地方就是在 传递的a[d]上吧, 执行 b(a)的时候,a是由 test()一开始传递的
而执行的 b(a) 这个b() 就是从下面个 E 传递上来的 a[d]
也就是说 a[d] 其实是一个方法
我猜想 ju 应该是一个包含许多方法的数组
原理就像这个一样吧,很麻烦的东西,只是为了得到 a 的访问权限
function test(a)
{
E(function(b)
{
b(a);
}
)
}
function E(bb)
{
bb(function(str)
{
alert(str);
}
);
}
test("小子,不要乱搞");
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]