我不明白这段代码在javascript中是如何工作的

时间:2017-09-19 03:31:33

标签: javascript html arrays function prototype

//classical JS does not provide a set data type--use JS object to build prime set:   
    var Set = function() {
        Set.prototype.add = function(o) {
        this[o] = true; 
      }
    }

    //Big-Time Important: 
    var s = new Set();
        s.add(2);
        s.add(3);
        s.add(5);
        s.add(7);
        s.add(11);
        s.add(13);
        s.add(17);
        s.add(19);
        s.add(23);   

此代码适用于一个游戏,其中添加了一堆素数,你必须猜测哪一个是正确的。但是代码:var Set = function ()然后进入另一个函数我不理解正在发生的事情的过程或者如何使用下面创建的set对象。

2 个答案:

答案 0 :(得分:0)

这是面向对象的java脚本样式..原型提供了在这种情况下为对象添加变量和/或方法的访问权限。你可以想到如下。 Set是一个类,您可以通过新的Set()

创建对象
dynarray_append()

答案 1 :(得分:0)

在ES6之前,Javascript没有集成内置。所以在这段代码中你创建了一个集合。

var Set = function() {
        Set.prototype.add = function(o) {
        this[o] = true; 
      }
    }

上面的代码是javascript创建"类"。

的方式
Set.prototype.add = function(o) {
            this[o] = true; 
          }

上面的代码行是Javascript添加方法的方式,称为"添加"设置班级。

this[o] = true;

上面的行是添加属性o并将其值设置为true。它与this.o = true

相同