C++のバックグラウンドから来て、明示的な型付けをしていないオブジェクト指向言語で作業しようとすると頭痛だけです。Javascript *は関数ではありません(プロトタイプ関数)
私はそれを動作させるために、それぞれに管理するために必要なもののトンがあるので、だから私は、オブジェクトによって「制御」されているWebページのための動的な要素を持っています。この要素は、オブジェクト自体の内部のデータの視覚的な出力に過ぎません。本当に必要なのはそれだけです。
を除いて、クリックすると内部機能を実行するオブジェクトが必要です。それはこれまでの私の頭痛の最大の原因と思われる。
Javascriptを:
function onClick(file) //The external onClick function I use to try to get it to call from.
{
file.state = INUSE;
file.checkState();
}
function fileObject() { //The file object itself
this.element;
this.newElement();
//initialize stuff for the object
}
fileObject.prototype.newElement = function() { //creates a new element and sets its event listener
this.element.click(function() {onClick(this)});
}
fileObject.prototype.checkState = function() {/*does stuff*/} //apparently this is "not a function"
私は正確に取得するエラーは、Firefoxのコンソールパネルから "file.checkStateは関数ではありません" です。
私はまだjavascriptの新機能ですが、いくつかのデバッグを行った後、明示的にすべてのエラーの原因となっているのはonClick(this)
関数であることがわかりました。何か他のものと一緒に使用する場合、onClick
機能が完璧に動作しますが、何らかの理由で、this
キーワードは、すべてのチェックがときのonClickスコープの内部file
がundefined
ことを示しているため、実際のFileObjectへの参照を送信するためには表示されません。このスニペットの作業を得るのを助けること
は、私はこれをやろうとしている方法について根本的に間違って何かがあるのか、私はちょうどステップを欠落している(または私は必要としない何かを追加すること)しています。
可能な重複[どのように "この" キーワードの作品?]のような(http://stackoverflow.com/questions/3127429/how-does-the-this-keyword-work) – JJJ
何か: 'this'は' undefined'になりますか? –
さて、私は単純に 'this'を間違って使用していますが、それでも私の問題は解決しません。私が必要とするのは、現在のスコープを通して存続する関数への参照を渡すきれいな方法です。 どうすればよいですか? – Kats