将Javascript getter作为参数传递

时间:2016-03-09 01:56:56

标签: javascript ecmascript-6

我有一个ecma6 / es2015类,其getter定义如下:

get foo() { return this._foo; }

我希望能够将该功能作为参数传递。像这样打电话:

someFunction(myClass.foo); 

将简单地调用该函数。有没有一种干净的方法我可以在不调用它的情况下传递方法,然后在传递中调用我将它传递给?

2 个答案:

答案 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>