回答:
プロパティの名前が変数に格納されている場合は、 []
foo[method]();
Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'FooClass'
他の誰かに教えてもらえますか?
オブジェクト内で関数を呼び出す場合、関数の名前を文字列として提供する必要があります。
var obj = {talk: function(){ console.log('Hi') }};
obj['talk'](); //prints "Hi"
obj[talk]()// Does not work
この例をここに残したいと思います。例えば; フォームの送信中に動的にチェックするメソッドを呼び出したいです。
<form data-before-submit="MyObject.myMethod">
<button type="submit">Submit</button>
</form>
$('form').on('submit', function(e){
var beforeSubmit = $(this).attr('data-before-submit');
if( beforeSubmit ){
params = beforeSubmit.split(".");
objectName = params[0];
methodName = params[1];
result = window[objectName][methodName]($(this));
if( result !== true ){
e.preventDefault();
}
}
});
var MyObject = {
myMethod = function(form){
console.log('worked');
return true;
}
};