我想在JavaScript类中定义public和private属性,

在这里,您可以看到我属性的c#格式。

我的问题是“如何使用JavaScript编写这些属性”:

public class MyMath
{
    public static double Pi
    {
       get {return 3.14;}
    }

    public static int R {get; set;}

    private int MyPrivateProp1 {get; set;}

    public double MyCalcMethod()
    {
           return MyPrivateProp1 * R;
    }
}


我想像这样使用此类:

var x = MyMath.Pi * MyMath.R;


在此先感谢您的时间。

最佳答案

您可以创建一个self-executing函数来创建您的对象,这将允许您立即从Javascript调用变量和方法,而不必创建该对象的实例。

示例:JSFiddle

var myMath = (function MyMath() {
    this.Pi = 3.14;
    this.R = 0;

    var MyPrivateProp1 = 15;

    this.MyCalcMethod = function() {
      return R * MyPrivateProp1;
    };

    return this;
})();

myMath.R = 5;

var x = myMath.Pi * myMath.R;

console.log(myMath.Pi);
console.log(myMath.R);
console.log(myMath.MyPrivateProp1); //This is returned as Undefined because it is a Private Variable to the Object.
console.log(myMath.MyCalcMethod());
console.log(x);


注意函数末尾的return this,这是确保将对象传递给myMath变量所必需的。

09-25 17:39