問題タブ [function-prototypes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
11 に答える
21281 参照

c++ - C /C++関数プロトタイプの抽出

私はこれをしたい:

そして、どんなスクリプト/プログラムでも、与えられたC /C++ファイルで定義されたすべての関数の関数プロトタイプの素晴らしいリストを出力します。複数行の宣言を適切に処理する必要があります。

この仕事をすることができるプログラムはありますか?シンプルであるほど良い。

編集:2つのCプログラムをコンパイルしようとした後、{perl、python、ruby}を使用するもののボーナスポイント。

0 投票する
3 に答える
6456 参照

javascript - JavaScriptでプロトタイプ化された関数にパラメーターを渡す

最近、javascript でプロトタイピングを試していますが、次のコードが機能しない理由がわかりません。私がやりたいことは、パラメーター n を持つチーズの新しいインスタンスを作成することです。

0 投票する
5 に答える
50206 参照

c - Cのmain()関数の有効な署名は何ですか?

Cのmain関数の有効な署名は実際には何ですか?知っている:

他に有効なものはありますか?

0 投票する
2 に答える
1716 参照

javascript - Javascript: プロトタイプ メソッド エラー?

このコードを実行すると、「TestFunc が定義されていません」というエラーが表示されます...

...このコードから実行されます:

0 投票する
3 に答える
1196 参照

c - プロトタイプのない古いスタイルの関数を使用したCコンパイラの動作

私のプログラムが2つのファイルで構成されている場合:

main.c

func.c

コンパイラはエラーを表示しません。

プログラムが1つのファイルのみで構成されている場合:

main.c

Visual C ++ 2008コンパイラは、次のエラーを表示します。

誰かがこの奇妙な行動を説明できますか?

0 投票する
2 に答える
280 参照

actionscript-3 - カスタム関数からのプロトタイプ関数

私にとっては複雑なシナリオです。

私は、私のURLと資産へのすべての参照とその中のガフを格納する辞書のような資産を備えた健全な管理シングルトンを持っています-

という関数がありますaddItem(id:String, url:String):Object

アイテムを辞書に追加し、サウンドの再生を開始するのと同様のことをしたいと思ってsoundManager.addItem(id:String, url:String).play()いますsoundManager.addItem(id:String, url:String).stop()

現在、私はそうしていsoundManager.addItem(id:String, url:String) ますsoundManager.play('myID')

私のサウンド アセットは、Sound、SoundChannel、SoundTransform、URL、およびその他の説明のない部分など、いくつかのビットを含むオブジェクトです。

プロトタイピングになることはわかっています。カスタム関数とオブジェクトのプロトタイプを作成する必要があるときは、行き詰まってしまいます。

前もって感謝します


結論:

さて、受け入れられた回答で述べたように、自動再生を行いました。

私はまた、見た目が好きなかなりクールなことをしました。

SoundManager クラスを作成します。このクラスは、SoundTransform、SoundChannel、およびその他の Sound オブジェクトが必要とするすべてを含む SoundObject を処理および使用します。

このように、アイテムを SoundManager に追加すると、必要なすべての play()、pause()、volume()、position() を組み込んだ SoundObject クラスが常に返されます。

とても便利で、すでに 4 つのプロジェクトで使用しています。ええ。

助けてくれてありがとう。

0 投票する
6 に答える
11812 参照

c++ - C++ で関数プロトタイプを前方宣言する方法はありますか?

私は、前方クラス宣言とそのようなクラスへのポインターを定期的に使用します。

関数ポインターを多数のレイヤーに渡す必要があります。関数ポインターのプロトタイプを宣言するヘッダーは、単にそのポインター値を渡す各レイヤーではなく、関数ポインターを逆参照するモジュールにのみ含めることをお勧めします。

これは可能ですか?

=====

回答から、私は質問によって十分に明確に表現していないと思います。私は前方クラス宣言に類似したものを探しています。私は皆、私が書くことができることに同意します:

クラス foo;

ボイドバー (foo*);

無効 waz(foo* p) { bar(p); }

waz は名前以外にクラス foo について何も知らないことに注意してください。おそらく、bar は foo の完全な説明にアクセスできます。おそらく、bar は単純に p をさらに先に渡します。誰も気にしない?foo* を逆参照するサイトのみ。他のすべてのサイトでは、「class foo;」のみが必要です。

同様に、私は次のように書けることを知っています:

typedef void foo(int, double);

ボイドバー (foo*);

無効 waz(foo* p) { bar(p); }

違いは、識別子 foo が関数型を示すことがわかっているだけでなく、完全な署名/プロトタイプをすでに持っていることです。これにより、次の 2 つの不快なシナリオのいずれかに陥ります。

1) 複数のサイトで typedef を複製します (ヤッ! 壊れやすい!) 2) typedef をヘッダーに貼り付け、foo* が言及されているすべての場所に含めます。

非対称性に注意してください。データ オブジェクトの場合、foo* を逆参照したいポイントでクラス foo の完全な説明を提供するだけで済みました。関数の場合、foo* に言及したいすべての場所で完全な署名/プロトタイプを提供する必要があります。

では、この非対称性を改善する方法はありますか?

0 投票する
10 に答える
93829 参照

c - Cで関数プロトタイプを宣言する必要がありますか?

私はCに少し慣れていません(以前のJava、C#、およびいくつかのC ++の経験があります)。Cでは、関数プロトタイプを宣言する必要がありますか、それともコードはそれなしでコンパイルできますか?そうすることは良いプログラミングの習慣ですか?それとも、コンパイラに依存しているだけですか?(私はUbuntu 9.10を実行しており、Code :: BlocksIDEでGNUCコンパイラ(gcc)を使用しています)

0 投票する
2 に答える
298 参照

javascript - Javascript オブジェクト メソッドのこの参照を解決できません

作成した JS オブジェクトにはいくつかのプロトタイプ関数があり、これを使用してコンストラクター内からそれらを呼び出すことは問題ありません。[関数]

しかし、後のイベントハンドラー関数では、これはオブジェクトではなく要素を参照しており、これを解決する方法がわかりません:

AddListener を正常に通過し、マウス ダウン イベントがトリガーされ、enable/disableDragging が正常に機能します。しかし、その関数では、"this" は要素であり、ドラッガー オブジェクトではないため、WindowCenter、DraggingBool、または Add/RemoveListener イベントへのアクセスを呼び出すことはできません。

読んでみると、prototype.bind を実装する必要があるように見えますか? しかし、これを行うために既存のコードを再配置する方法がわかりません。それとも、関数を返すように関数の 1 つを変更する必要がありますか?

はい、私はjQueryでこれを行うことができることを知っています.POJSでうまくいくかどうかを確認しようとしているだけです:)

0 投票する
10 に答える
23634 参照

javascript - Javascriptプロトタイプオペレーターのパフォーマンス:メモリを節約しますが、より高速ですか?

ここ(Douglas Crockford)を読んで、プロトタイプ演算子を使用してJavascriptクラスにメソッドを追加すると、メモリも節約されます。

次に、このJohn Resigの記事 「多数のプロトタイププロパティを使用して関数をインスタンス化するのは非常に高速ですを読みましたが、彼は標準的な方法でプロトタイプを使用することについて話しているのでしょうか、それとも彼の記事で彼の特定の例について話しているのでしょうか。

たとえば、次のオブジェクトを作成しています。

では、このオブジェクトを作成するよりも遅いですか?

PS

プロトタイプが継承やシングルトンオブジェクトなどを作成するために使用されていることは知っています。しかし、この質問はこれらの主題とは何の関係もありません。


編集: JSオブジェクトとJS静的オブジェクトのパフォーマンス比較にも関心があるかもしれない人は、以下のこの回答を読むことができます。静的オブジェクトは間違いなく高速です。明らかに、オブジェクトの複数のインスタンスが必要ない場合にのみ使用できます。