JavaScript对象字面量与函数的合并

闲的蛋疼琢磨出来的JavaScript省力特殊写法

如果
想要同时具有对象字面量的省力,又同时具有函数的功能
该怎么做?

毫无疑问!吧两个合并起来!


这是一个工厂函数

function FuncFac(obj){
    if(obj.proto==null){
        return obj;
    }else {
        var fuc=obj.proto;
        for(var i in obj){
            fuc[i]=obj[i];
        }
        delete fuc.proto;
        return fuc;
    }
};

它遵循这样的格式

var A=FuncFac({
    proto:function(){
        alert("这是一个独立的函数");
    },
    a:"a",
    b:"b"
});

这样做有什么好处?

//工厂函数
    function FuncFac(obj){
    if(obj.proto==null){
        return obj;
    }else {
        var fuc=obj.proto;
        for(var i in obj){
            fuc[i]=obj[i];
        }
        delete fuc.proto;
        return fuc;
    }
};
//示例
var A=FuncFac({
    proto:function(){
        alert("这是一个独立的函数");
    },
    a:1+1,
    b:"b"
});

alert(A.b);//输出:b
A();//输出:这是一个独立的函数

这个变量 A
同时是个可直接执行的函数,又是个对象字面量
它处于了一个量子叠加态滑稽

-如果用()去观♂察

  • 它就是个函数

-如果用.或者[]去观♂察

  • 就是个字面量

不过,缺点是变量A的函数态不具备访问自己的内容的能力

proto:function(){
        alert(this.b);//undefined
    }

函数里的thiswindow对象






















以上纯属闲的蛋疼

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值