编写Javascript类的最佳方法是什么

时间:2013-06-07 08:10:02

标签: javascript jquery class oop

可以从以下两种类型的javascript类创建(OOPs概念)中帮助哪一个是最佳用法/实现?

方式1:

var MyClassName = function(){
  // private variables
  // private functions

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

用法:

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

方式2:

function MyClass(){
  //public variables and functions
  this.publicVariable = "";
  this.publicFunctionName3 = function(){
  }

  // private functions
  function privateFunctionName3(){
  }
}

用途:

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

2 个答案:

答案 0 :(得分:1)

这通常取决于您自己的品味以及您希望如何使用该课程...但几个月前我问自己一个类似的问题并找到了有用的description where different ways of defining classes in Javascript are explained。这也可能有助于向您澄清事情......

答案 1 :(得分:1)

结帐book

它有关于构造函数的特定章节,非常有用。

如果简短:在你提出的两种方法中,你将失去与prototype的联系,所以你需要决定是否有必要。

另一个提案可能是:

/* 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