使用this.argu存储参数是一个好习惯吗?

时间:2012-07-15 13:38:01

标签: javascript arguments

我是前端开发的新手,现在我正在阅读我公司其他人编写的很多js代码,并发现他们将使用这种语法存储参数:

function func1(argu1,argu2){
   this.argu1 = argu1;
   this.argu2 = argu2;
   // other code run here....
}

对我来说,我通常跳过这个并直接在我的代码中使用参数或获取n的变量,如下所示:

function func2(argu1,argu2){
   alert(argu1);
   alert(argu2);
   var arguOne = argu1,arguSec = argu2;

  // other code run here...
}

所以我想问为什么要使用这种语法来存储参数? 这是一个好习惯吗?为什么? 我是否曾想念一些我应该知道的概念?

请看我的同事写的fiddle,这位同事不再是前锋......

2 个答案:

答案 0 :(得分:2)

在第一个示例中,func1可用于创建对象。它实际上是一个类定义(构造函数)。它可以使用如下:

function func1(argu1,argu2)
{
   this.argu1 = argu1;
   this.argu2 = argu2;
}

var instance = new func1('a', 'b');
alert(instance.argu1);
alert(instance.argu2);

答案 1 :(得分:1)

Lordy阁下:不要定义函数,而是在最后调用它,尝试使用闭包。只需按原样保留函数定义,但将其放在括号中:

(function new_slider (arguments)
{
    //your code here
})('#new_slider',1500,150,10);

这样,声明了函数,并且同时调用了函数,在主new_slider函数中定义的所有函数都可以访问参数。绝对没有理由使用this.argu1来存储这些值。如果有的话,它会创建全局变量,这被认为是不好的做法。

请在JavaScript中使用google闭包,它们非常强大