gpt4 book ai didi

javascript - 如何最好地在 JavaScript 中调用任意对象上的任意方法?

转载 作者:行者123 更新时间:2023-11-28 10:22:49 27 4
gpt4 key购买 nike

我希望能够对任意对象调用任意方法。像这样的东西:

function applyArbitraryMethod( method, args ) {
window[method].apply( this, args );
}

applyArbitraryMethod( 'Object.method', args );

这不起作用,但这个可以:

function applyArbitraryMethod( object, method, args ) {
window[object][method].apply( this, args );
}

applyArbitraryMethod( 'Object', 'method', args );

但是,现在我希望能够打电话

applyArbitraryMethod( 'Object.child.grandchild.method', args );

对象上有任意数量的后代。我当前的解决方案是:

function applyArbitraryMethod( objects, args ) {
objects = objects.split(/\./);
var method = window;
for( var i in objects ) method = method[objects[i]];
method.apply( this, args );
}

但我想知道是否有更直接的方法来实现相同的目标。

最佳答案

这应该有效:

function applyArbitraryMethod(method, args) {
method.apply(this, args);
}
applyArbitraryMethod(Object.method, args);

关于javascript - 如何最好地在 JavaScript 中调用任意对象上的任意方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5130766/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com