2016-05-12 23 views
1

申し訳ありませんが重複していますが、説明が見つかりませんでした。 jsクラスでフィールドを作成するにはどうすればよいですか?将来定義する...javascriptクラスのフィールドにアクセスするにはどうすればいいですか

class Polygon { 
    //var whyNot; This makes false 
    constructor(height, width) { 
     this.height = height; 
     this.width = width; 
    } 

    calcArea() { 
    return this.height * this.width; 
    } 
} 
+0

を使用することができますJavascriptの以前のバージョンでは、あなたはなどES6、活字体を、使用していますか? – War10ck

+0

私はそうは思わない - ここではhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classesの例を見つけましたが、私は明確な文書を学びたいと思っています。 – nolbadi111

+0

その例はES6です。私はあなたの質問にタグを追加して、より多くの可視性を与えました。 – War10ck

答えて

-2

この回答を確認してください。 Constructors in JavaScript objects

javascriptに「クラス」はありません。そのオブジェクトを関数として定義します。継承可能な関数をプロトタイプとして定義します。あなたはoopの動作のために 'prototype'キーワードを使うでしょう。

+2

ES6では、JavaScriptにはクラスがあります:http://stackoverflow.com/questions/28308578/member-variables-in-es6-classes – War10ck

0

あなたはJSオブジェクトについて理解していますが、独自のコンストラクタである関数を呼び出す変数を作成します。次に、呼び出す関数を含むようにオブジェクトを変更します。このようにhttps://jsfiddle.net/programndial/vonc5af5/

<input type="button" id="testButton" value="Test" /> 

function Polygon(height, width) { 
    this.height = height; 
    this.width = width; 

    Polygon.prototype.calcArea = function(string) { 
     return this.height * this.width; 
    } 
} 

testButton.onclick = function() { 
    var newPoly = new Polygon(10, 25); 
    alert(newPoly.calcArea()); 
} 
+0

独自のコンストラクタである関数を呼び出す変数を作成しません。 "whyNot" varaiableの後はno = constructorなどです。私は "whyNot = 3;"のようなフィールドを作ろうとしています。しかし、私はできません。 – nolbadi111

+0

@ nolbadi111あなたのjsクラスの構築がオフであることを言っているだけです。[this fiddle](https://jsfiddle.net/programndial/82zhgf8h/)を見て、あなたが望むものを正確に行うことができます。 – programndial

+0

@ nolbadi111 varで宣言されたメンバーはプライベートであり、 'class'というメソッドでしか変更できないことを忘れないでください。publicプロパティを使用する必要がある場合this.whyNot – programndial

0

答えは(部分的に)あなたの質問です。

あなたのコメントのコードとリンクから、Javascriptの最近のバージョン(ES6またはES2015)を使用すると仮定します。

あなたが提供したコードのようにconstructorメソッドで作成できます。もちろん

class Polygon { 

    constructor(height, width) { 
     //height and width will be fields of Polygon 
     this.height = height; 
     this.width = width; 
     //...and whyNot too! 
     this.whyNot = 42; 
    } 

    ... 

ES6に互換性があることから、あなたはまだconstructor methods, object literals...

関連する問題