列表

详情


2690. 无穷方法对象

请你编写一个函数,返回一个 无穷方法对象

无穷方法对象 被定义为一个对象,它允许您调用任何方法,并始终返回方法的名称。

例如,如果执行 obj.abc123() ,它将返回 "abc123"

 

示例 1:

输入:method = "abc123"
输出:"abc123"
解释:
const obj = createInfiniteObject();
obj['abc123'](); // "abc123"
返回的字符串应始终与方法名称匹配。

示例 2:

输入:method = ".-qw73n|^2It"
输出:".-qw73n|^2It"
解释:返回的字符串应始终与方法名称匹配。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
/** * @return {Object} */ var createInfiniteObject = function() { }; /** * const obj = createInfiniteObject(); * obj['abc123'](); // "abc123" */

javascript 解法, 执行用时: 60 ms, 内存消耗: 40.9 MB, 提交时间: 2023-10-15 15:05:56

/**
 * @return {Object}
 */
var createInfiniteObject = function() {
    // 创建一个代理对象
    const proxyMap = new Proxy({}, {
        // 捕获对象的 get 操作,同时返回一个函数
        get : (_, prop) => () => prop
    })
    // 将代理对象返回给外部
    return proxyMap
};

/**
 * const obj = createInfiniteObject();
 * obj['abc123'](); // "abc123"
 */

typescript 解法, 执行用时: 64 ms, 内存消耗: 42.1 MB, 提交时间: 2023-10-15 15:05:37

function createInfiniteObject(): Record<string, () => string> {
  return new Proxy({}, {
    get: (_, prop) => () => prop,
  });
};



/**
 * const obj = createInfiniteObject();
 * obj['abc123'](); // "abc123"
 */

typescript 解法, 执行用时: 48 ms, 内存消耗: 42.3 MB, 提交时间: 2023-10-15 15:05:16

function createInfiniteObject(): Record<string, () => string> {
    return new Proxy(
        {}, // 被代理对象
        {
            get(target, p) {
                return () => p
            }
        }
    )
};

/**
 * const obj = createInfiniteObject();
 * obj['abc123'](); // "abc123"
 */

上一题