call()またはapply()から呼び出されたときに関数の戻り値を取得する方法はありますか?JavaScriptでcall()またはapply()を使用した戻り値
私のシナリオ:
私はapply()
機能を正常に動作機能を持っています。オブジェクトのメソッド内のループで
var someObject = new SomeObject({NameFunction: "MakeNames"});
:
var name = "";
for (var i = 0; i < data.length; i++) {
name = window[this.NameFunction].apply(null, [data[i]]);
}
そしてMakeNames
機能:
name
滞在空の原因
apply
はいずれも返さない
function MakeNames(data)
{
return data.FirstName + " " + data.LastName;
}
オブジェクトのコンストラクタで関数からの値。関数が呼び出され、引数が正常に渡されたと確信しています。 name = MakeNames(data[i]);
を直接使用するように言わないでください。なぜなら、私はこの解決策が欲しくないからです。
apply
、call
などが問題ではありません。動作している場合はJavaScriptが必要です。
どうすればこの問題を解決できますか?
私にとっては戻り値が正常に機能します。これをブラウザコンソール 'var x =" huh ".toString.apply(" test ");' xを "test"に設定してください。 –
が適用され、呼び出しによって値が返されます。他の何かが間違っている必要があります。呼び出す関数を公開しているコードをさらに提供できますか?また、toStringは何をしていますか?あなたの関数名は、あなたの例ではすでに文字列です。 – Tim
@ ben336申し訳ありませんが、あなたのポイントを理解することはできません。より正確な回答を投稿できますか? – DontVoteMeDown