2012-07-15 62 views
1

我是新来的前端开发,现在我阅读了大量的JS代码由其他在我公司书面和发现他们会用这个语法来存储参数:使用this.argu存储参数是一种好的做法?

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,由我的同事谁已经不再是前安德书面....

+0

你为什么要“存储参数”? – Pointy 2012-07-15 13:46:30

+2

函数名是否有大写字母?如果这是一个构造函数,那么称它为func1而不是'Func1'是不好的做法。 – Esailija 2012-07-15 13:46:38

+0

@点我不知道,这正是我的同事写的,我问过他,他说这很方便获得参数......因为我不是JS Pro,所以我在这里问...... – Lien 2012-07-15 13:55:10

回答

2

在你的第一个例子,FUNC1可以用来创建对象。它实际上是一个类定义(构造函数)。它可以使用如下:

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

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

谢谢!看到我的合作者写的[fiddle](http://jsfiddle.net/strangeline/T29vd/),他已经不再是一个前锋了,我不认为这将是一个类定义机会...... – Lien 2012-07-15 14:03:36

+0

@strangeline确实不是,他要么故意或意外地创建全局变量。而全球国家并不是一个好的做法。 – Esailija 2012-07-15 14:06:31

+0

@Esailija非常感谢!我怀疑这是相当长的一段时间,因为他是我的上级之前......并且非常肯定他的理论“这样便于存储参数”.... – Lien 2012-07-15 14:12:21

1

Lord Lord:不是定义函数,而是在最后调用它,尝试使用闭包。只要保持功能定义是,但把它放在括号:

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

这样,函数声明,并在同一时间调用,主要new_slider函数中定义的所有功能,将有机会获得的参数。绝对没有理由使用this.argu1来存储这些值。如果有的话,它会创建全局变量,这被认为是不好的做法。

请谷歌关闭在JavaScript中,他们是非常强大的

相关问题