类中的函数

时间:2017-06-06 15:30:02

标签: javascript html

我们需要使用两种方法创建一个名为Series的类

  1. triNums - 通过它所回归的数字返回三角形系列的函数,例如:如果函数得到5 - 1,3,6,10,15
  2. fibNums - 用数字返回斐波那契数列的函数 例如:如果函数得到5 - 0,1,1,2,3,5
  3. 按下按钮(fibo)(tri)时,每个功能都需要执行,结果的每个元素都应显示在按钮上

    class Series {
      tri() {
        const num = document.querySelector("#num").value
        if (num) {
          addBtns(triNums(num));
        }
      }
    
      addBtns(arr) {
        const feed = document.querySelector("#feed");
        var btns = ""; //no buttons by default
        for (let v of arr) { //iterate over all values
          btns += "<button>" + v + "</button>";
        }
        feed.innerHTML = btns;
      }
      triNums(num) {
        var triNums = [];
        for (let n = 0; n < num.value; n++) {
          triNums[n] = n * (n + 1) / 2;
        }
        return triNums;
      }
      triNum(n) {
          return (n * (n + 1) / 2);
      }
    }        
    <!DOCTYPE HTML>
    <html lang="en-US">
    
    <head>
      <meta charset="UTF-8" />
      <title></title>
      <script src="home6617.js"></script>
    </head>
    
    <body>
      Enter Name <input id="name" placeholder="Enter name"></input>
      <button onclick="sayHello()">Click me</button>
      <h1 id="hello"></h1>
      <input id="num"></input>
      <button onclick="tri()">triangular</button>
      <div id="feed"></div>
    </body>
    
    </html>

1 个答案:

答案 0 :(得分:0)

你犯了一些错误:

  1. 您将#num.value传递给triNums,这是一个数字,然后您尝试访问其值,这是不必要的,也是不可能的。

  2. 您不能调用tri(),因为它是Series实例的一部分。你可以做(新系列).tri()

  3. 同样适用于内部函数调用,您必须通过 this 访问它们:

  4. &#13;
    &#13;
    class Series {
      tri() {
        const num = document.querySelector("#num").value
        if (num) {
          this.addBtns(this.triNums(num));
        }
      }
    
      addBtns(arr) {
        const feed = document.querySelector("#feed");
        var btns = ""; //no buttons by default
        for (let v of arr) { //iterate over all values
          btns += "<button>" + v + "</button>";
        }
        feed.innerHTML = btns;
      }
      triNums(num) {
        var triNums = [];
        for (let n = 0; n < num; n++) {
          triNums[n] = n * (n + 1) / 2;
        }
        return triNums;
      }
      triNum(n) {
          return (n * (n + 1) / 2);
      }
    } 
    
    function start(){
     (new Series).tri();   
    }    
    &#13;
    <!DOCTYPE HTML>
    <html lang="en-US">
    
    <head>
      <meta charset="UTF-8" />
      <title></title>
      <script src="home6617.js"></script>
    </head>
    
    <body>
     <div id="feed"></div>
     <input id="num" />
     <button onclick="start()">Start</button>
    </body>
    
    </html>
    &#13;
    &#13;
    &#13;