通用的调用不确定参数个数的 JavaScript 函数

作者:vkvi 来源:千一网络(原创) 日期:2010-4-15

很多情况下,特别是在使用类时,我们常用到类似下面的代码:

if (typeof(this.onchange) == "function")
{
    this.onchange();
}

其实这段代码的意思是,如果属性 onchange 对应了一个函数,那么就执行这个函数。因为 onchange 有点像事件的用法,类使用者不一定会为其赋值,所以这里需要判断。

没什么技术含量,只是,如果有很多属性,都要这样去写,就有些麻烦。

正在开发中的 ezj 新版本提供了此问题的解决方案。

Function.is = function(v)
{
    return Object.prototype.toString.apply(v) === "[object Function]";
}
 
 
Function.run = function(v)
{
    if (Function.is(v))
    {
        var arr = new Array();
        for (var i = 1; i < arguments.length; i++)
        {
            arr.push(arguments[i]);
        }
        v.apply(window, arr);
    }
}

使用方法变成了:Function.run(this.onchange)。Function.run 的亮点就是可以运行不确定参数的 JavaScript 函数,比如:

Function.run(this.onclick, p1);
Function.run(this.onload, p1, p2);

p1 参数会自动传送到 onclick 中;

p1、p2 参数会自动传送到 onload 中。

说明

以上代码只是 ezj 新版本的草稿代码,不代表 ezj 新版本发布时的最终代码。

相关阅读

你前面那位网友看了:透明的下拉展开菜单

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
标题:必填
内容:
本站永远终止与捏造“罪名”不支付广告费的某度联盟合作。
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他