将vars传递给其他方法javascript

Pass vars to other method javascript

本文关键字:其他 方法 javascript vars      更新时间:2023-09-26

我想把var"firstWord"和其中保存的值从一个方法传递到另一个方法。

var obj = {
    getWords: function () {
        var words = [];
        $('input').each(function () {
            words.push($(this).val());
        });
        var firstWord  = words[0],
            secondWord = words[1],
            thirdWord  = words[2];
    },
    pushWords: function () {
        Array.prototype.insert = function (index, item) {
            this.splice(index, 0, item);
        };
        var fruits = ["Banana", "Orange", "Apple", "Mango"],
            randomPosition = (Math.floor(Math.random() * (5 - 2 + 1)) + 1);
        fruits.insert(randomPosition, firstWord);

        $('body').append(fruits);
    }
};

也许我的代码有点错误,但在这种情况下有可能这样做吗?

如果用var关键字声明一个变量,则它仅在函数中可用。去掉它,您就有了一个全局变量,您也可以从其他函数访问它。(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var)

一种将一个函数的值传递给另一个的方法,如:

function one(){
var var1 = "hello";
two(var1);
}
function two(x){
alert(x);
}

这应该为你打印"你好"。另一种方法是将firstWord声明为全局变量。

尝试返回如下数组,

 getWords: function () {
        var words = [];
        $('input').each(function () {
            words.push($(this).val());
        });
       return words;
    },

以及推送字

    pushWords: function () {
            var arr = this.getWords();
            ................
            ................
            ................
           fruits.insert(randomPosition, arr[0]);
    }
   $('body').append(fruits);

由于var firstword、secondword和thirdword只能在getwords函数内部访问,因此必须尝试返回它在使用前返回值。希望它能有所帮助。。

请参阅此处的示例https://jsfiddle.net/xz0ofkjx/

因此将其作为对象的属性。

var obj = {
  _words : [],
  
  setWords : function () {
     this._words = ["hello","world"];
  },
    
  pushWords : function () {
    this._words.push("foo");  
  },
    
  readWords : function () {
      console.log(this._words); 
  }
  
}
obj.readWords();
obj.setWords();
obj.readWords();
obj.pushWords();
obj.readWords();