有关Codewars Kata中Javascript语法的问题

时间:2019-12-05 18:07:22

标签: javascript arrays

我正在尝试完成以下Kata:https://www.codewars.com/kata/validate-sudoku-with-size-nxn/train/javascript给出大小为NxN,N> 0和√N==整数的Sudoku数据结构,编写一种方法来验证它是否已正确填写。

他们从开始就给出了一些措辞,其中有些我不理解。我相信我可以使用正常功能解决此问题,但是他们给出的某些部分使我感到困惑。他们从这里开始:

var Sudoku = function(data) 
{
  //   Private methods
  // -------------------------



  //   Public methods
  // -------------------------
  return {
    isValid: function() {
      // YOUR SOLUTION

      return true;
    }
  };
};

尤其是以下几行使我感到困惑。他们为什么提到私有和公共方法? isValid:function()是什么,Sudoku函数中只是一个名为isValid的新函数吗?这样做的目的是什么?我必须这样做吗?

//   Private methods

//   Public methods

isValid: function() {

1 个答案:

答案 0 :(得分:2)

  

为什么他们提到私有和公共方法?

该函数中的变量无法在该函数外部访问。

从函数返回的对象的属性是

  

isValid:function()是什么,仅仅是Sudoku函数中一个叫做isValid的新函数?

这只是标准的object initializer语法。

isValid是属性名称。

function () { ... }是一个函数表达式,它是分配给该属性的值。

  

这样做的目的是什么?

它使您可以以清晰易管理的格式包装一堆功能,同时向其公开尽可能简单的接口。这样可以最大程度地减少其他代码的影响,以免产生副作用。

  

我必须那样做吗?

否。