Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 编写Java脚本类的最佳方法是什么_Javascript_Jquery_Class_Oop - Fatal编程技术网

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

Javascript 编写Java脚本类的最佳方法是什么,javascript,jquery,class,oop,Javascript,Jquery,Class,Oop,从下面两种类型的javascript类创建(OOPs概念)中,可以帮助确定哪一种是最佳使用/实现 方式1: var MyClassName = function(){ // private variables // private functions return { // public functions pubFunctionName1: function(){ }, pubFunctionName2: function(){ } }

从下面两种类型的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();

这通常取决于你自己的品味和你想如何使用这个课程。。。但几个月前,我问了自己一个类似的问题,发现了一个有用的答案。这也可能有助于向您澄清问题……

请查看此链接

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

简而言之:在您提出的两种方法中,您将失去与
原型的联系,因此您需要确定是否有必要这样做

另一个建议可能是:

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

做任何事都没有最好的方法。对于一个非常特殊的情况,只有最合适的方法。在这种情况下,没有最好的方法。这将取决于用例和您更熟悉的内容,因为它们都会给出相同的结果。然而,我觉得方式2对我来说更舒适,它更具可读性。但这也取决于用例,Javascript中没有“类”这样的东西。仅限对象。Pholip和Ankit-感谢您的重播。我将使用方式2。因为,我很容易理解编码结构。虽然这是一篇很好的文章,但你应该在你的答案中包含它的一部分。否则,如果链接因任何原因变得不可用,这个答案将是无用的。