关于javascript:编写Javascript类的最佳方法是什么

What is the best way to write Java Script Class

本问题已经有最佳答案,请猛点这里访问。

从下面两种类型的javascript类创建(oops概念)中,哪一种是最佳的用法/实现?

方式1:

1
2
3
4
5
6
7
8
9
10
11
12
var MyClassName = function(){
  // private variables
  // private functions

  return {
    // public functions
    pubFunctionName1: function(){
    },
    pubFunctionName2: function(){
    }
  }
}

用途:

1
2
myClass = new MyClass();
myClass.pubFunctionName1();

方式2:

1
2
3
4
5
6
7
8
9
10
function MyClass(){
  //public variables and functions
  this.publicVariable ="";
  this.publicFunctionName3 = function(){
  }

  // private functions
  function privateFunctionName3(){
  }
}

用法:

1
2
var myClass = new MyClass();
myClass.publicFunctionName3();


签出这本书

它有关于构造器的具体章节,非常有用。

简而言之,在你提出的两种方法中,你都会失去与EDCOX1×0的连接,所以你需要决定是否对你有必要。

另一个提议可能是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* self-inited constructor */
var Cat = function () {
  if (!(this instanceof Cat)) {
    return new Cat();
  }

  this.name = 'Tom';
};
Cat.prototype.meow = true;

var persian = new Cat();
var cheshire = Cat();

console.log(persian.name); //"Tom"
console.log(cheshire.name); //"Tom"
console.log(persian.meow); // true
console.log(cheshire.meow); // true

这往往取决于你自己的品味和你想如何使用课堂……但几个月前,我问自己一个类似的问题,发现了一个有用的描述,其中解释了在JavaScript中定义类的不同方法。这也有助于向你澄清…