/**
* @return {Object}
*/
var createInfiniteObject = function() {
};
/**
* const obj = createInfiniteObject();
* obj['abc123'](); // "abc123"
*/
2690. 无穷方法对象
请你编写一个函数,返回一个 无穷方法对象 。
无穷方法对象 被定义为一个对象,它允许您调用任何方法,并始终返回方法的名称。
例如,如果执行 obj.abc123()
,它将返回 "abc123"
。
示例 1:
输入:method = "abc123" 输出:"abc123" 解释: const obj = createInfiniteObject(); obj['abc123'](); // "abc123" 返回的字符串应始终与方法名称匹配。
示例 2:
输入:method = ".-qw73n|^2It" 输出:".-qw73n|^2It" 解释:返回的字符串应始终与方法名称匹配。
提示:
0 <= method.length <= 1000
原站题解
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" */