我有一个ecma6 / es2015类,其getter定义如下:
get foo() { return this._foo; }
我希望能够将该功能作为参数传递。像这样打电话:
someFunction(myClass.foo);
将简单地调用该函数。有没有一种干净的方法我可以在不调用它的情况下传递方法,然后在传递中调用我将它传递给?
答案 0 :(得分:8)
我假设您必须将其包装成匿名函数以防止它被执行:
someFunction(() => myClass.foo);
或者,您可以自己获取getter函数,但它的可读性低于上述函数:
someFunction(Object.getOwnPropertyDescriptor(myClass, 'foo').get);
答案 1 :(得分:0)
不确定我是否理解你的意思是指一种定义函数的方法,然后将它传递给另一个函数(作为函数)以便稍后调用?
这样的事情?
var myFunc = function() {
console.log('func');
document.getElementById('result').innerHTML='func';
}
console.log( 'start');
document.getElementById('result').innerHTML='start';
setTimeout( myFunc, 3000 );
console.log( 'end');
document.getElementById('result').innerHTML='end';
<h1 id='result'>default</h1>