建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

Javascript动态方法调用与参数修改分析

时间:2011-03-02 09:37来源: 作者: 点击:
本文是关于对Javascript动态方法调用与参数修改分析 Javascript中可以对所传参数在函数内进行修改,如下 view sourceprint? 1    function func1(name) { 2        name = 'lily'; 3        al

本文是关于对Javascript动态方法调用与参数修改分析
Javascript中可以对所传参数在函数内进行修改,如下
view sourceprint?
1    function func1(name) {
2        name = 'lily';
3        alert(name);
4    }
5    func1('jack');//输出lily

再看一个例子
view sourceprint?
1    function fun1(n) {
2        this.name = n;
3    }
4    function fun2(name) {
5        fun1.call(this,'lily');
6        alert(name);
7    }
8    fun2("jack");//输出"jack"

fun1函数想把fun2调用时的参数修改为“lily”,但没有成功。弹出的仍然是“jack”。思考下为什么?

实际上fun1还是有能力把fun2调用时的参数给修改掉的,利用caller属性
view sourceprint?
1    function fun1() {
2        arguments.callee.caller.arguments[0] = 'lily';
3    }
4    function fun2(name) {
5        fun1.call(this,name);
6        alert(name);
7    }
8    fun2("jack");//输出"lily"

可见,外层函数对于内层函数的调用栈是可见的,可修改的。 (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片