将vars传递给其他方法javascript

时间:2015-12-20 13:57:10

标签: javascript jquery inheritance

我想传递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);
    }

};

可能我的代码有点错误,但在这种情况下有没有可能做到这一点?

4 个答案:

答案 0 :(得分:0)

如果您使用Space关键字声明变量,那么它只能在函数中使用。保留它并且您将拥有一个全局变量,您也可以从其他函数访问该变量。 (Results

答案 1 :(得分:0)

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

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

function two(x){
alert(x);
}

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

答案 2 :(得分:0)

尝试返回如下所示的数组

 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/

答案 3 :(得分:0)

所以把它作为对象的属性。

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();