如何在对象的元素中获取该元素的名字?

12style
  • 38

需要在Fn对象的每个元素中分别获取key值,比如在search中获取“search”,控制台提示“search”

类似于下面的效果,每个设置数组位置有点麻烦

var a = Object.keys(Fn)[1];
console.log(a)
let Fn = {
            stop: function() {
                window.stop();
            },
            search: function(argumentArr, data) {
                GM_openInTab(argumentArr[0] + encodeURIComponent(data.textSelection),
                             {

                    active: false,
                    insert: true,
                    setParent: true 
                });

console.log(this.search)//需要获取到“search”,控制台提示“search”

            },
            copy: function(argumentArr, data) {
                GM_setClipboard(data.textSelection, "text");
                //showclipboard(data.textSelection);
                window.navigator.clipboard.readText()
                    .then(text => {
                    showclipboard(text);
                })
                    .catch(err => {
                    console.error('Failed to read clipboard contents: ', err);
                });
            }

        }
回复
阅读 396
1 个回答
✓ 已被采纳

使用Proxy

const handler = {
    get: function(obj, prop) {
        console.log(prop);
        return obj[prop];
    }
};

const newFn = new Proxy(Fn, handler);

newFn.search // 打印search
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏