获取请求的子对象的名称 javascript [英] Get the name of the requested subobject javascript

查看:46
本文介绍了获取请求的子对象的名称 javascript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我有一个带有匿名函数的对象,我怎么知道正在请求什么子对象以便我可以返回一个值?

If I have an object with an anonymous function inside how do I know what subobject is being requested so that I can return a value?

var obj = function(a) {
    switch (a) {
        case 'subprop1': return 'subval1';
        case 'subprop2': return 'subval2';
        case 'subprop3': return 'subval3';
        default: return 'defaultval'; 
    }
}

所以如果我打电话:

obj.subprop1

我应该得到:

subval1

推荐答案

除非您的环境支持 Proxy.

This is not really possible with plain objects unless your environment supports Proxy.

在这种情况下,它会很容易(尚未测试):

In this case it would be quite easy (haven't tested):

var obj = function(a) {
    switch (a) {
        case 'subprop1': return 'subval1';
        case 'subprop2': return 'subval2';
        case 'subprop3': return 'subval3';
        default: return 'defaultval'; 
    }
};

var objProxy = new Proxy(obj, {
    get: function (target, name) { return target(name); }
});

objProxy.subprop1; //should return subval1
objProxy.nonExisting; //shoud return defaultval

这篇关于获取请求的子对象的名称 javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆