2011-05-13 8 views
0

以下のコードを理解するのを手伝ってください。これはドラッグアンドドロップオブジェクト用のスクリプトです。私はそれを探索しようとしていますが、一つのことで打ちました。 getSetは、事前定義されたオブジェクトは、x設定私のようなこのメソッドの作成作業は、(Xを取得する方法を理解しないヘルプが必要/プロトタイププロパティを使用してメソッドを作成する

URL for Reference (Complete Script)

)、()などでていますか?実際にオブジェクトの値を設定するか、オブジェクトの特定の値を取得しますか?

また、宣言set x()の間にスペースが1つあります。なぜですか?

私はJavaスクリプトの初心者です。本当に助けていただきありがとうございます。

// position strings are "x,y" with no units 
get x() 
{ 
    return parseInt(this._position.split(',')[0]); 
}, 

set x(inX) 
{ 
    var comps = this._position.split(','); 
    comps[0] = inX; 
    this.position = comps.join(','); 
}, 

get y() 
{ 
    return parseInt(this._position.split(',')[1]); 
}, 

set y(inY) 
{ 
    var comps = this._position.split(','); 
    comps[1] = inY; 
    this.position = comps.join(','); 
}, 

答えて

0

「Javaスクリプト」ではなく「JavaScript」という言語を呼び出すことから始めましょう。 the language is standardized as Ecmascript

Look up creation of methods in Ecmascript (JavaScript)。関数set(inX)とget()は、いくつかのプロトタイプのメソッドです。この参照が現在のインスタンスを参照していることがわかります。しかし、関数get()と関数set(inX)を書くべきです。ウィキペディアから

:JavaScriptのではなく、継承のためのクラスのプロトタイプを使用しています

プロトタイプベースの

プロトタイプ。 JavaScriptのプロトタイプを使用して、多くのクラスベースの機能をシミュレートすることが可能です。 オブジェクトコンストラクタとして機能します

関数は、オブジェクトコンストラクタとして、通常の ロールの2倍です。新しい関数呼び出しの前に新しいオブジェクトが作成され、 ローカルのthisキーワードがそのオブジェクトにバインドされて呼び出され、その呼び出しのために が呼び出されます。コンストラクタのprototypeプロパティは、新しいオブジェクトの内部プロトタイプに使用されるオブジェクトを と決定します。 JavaScriptの の組み込みコンストラクタ(配列など)には、 のプロトタイプもあります。メソッドとして機能する

多くのオブジェクト指向言語とは異なり、関数定義とメソッド定義の間には区別がありません。 むしろ、 は、関数呼び出し中に区別されます。メソッドは と呼びます。関数がオブジェクトのメソッドとして呼び出されると、 関数のローカルthisキーワードは、そのオブジェクトにバインドされ、そのオブジェクトは です。

関連する問題