我想创建一个对象。而且,在我读过的几乎代码中,他们经常使用这种风格:

function student(_id, _name, _year){
   this.id = _id;
   this.name = _name;
   this.year = _year;
}

但是,我不知道与下面的代码有什么区别:
function student (_id, _name, _year){
   var id = _id;
   var name = _name;
   var year = _year;
}

例如,我已经测试了 alert 属性来筛选,并没有看到任何区别。

谢谢 :)

最佳答案

当您使用 var 声明变量时,它们仅在您的函数/构造函数范围内可见。可以这么说,他们是私有(private)的。

在这种情况下,使用 这个 与构造函数密切相关。当您实例化一个学生时,分配给它的所有值都可以公开访问。

首先,我建议将您的 学生 重命名为 Student 并使用大写 S 。这是一个约定,表明它是一个构造函数,您需要使用 关键字。

function Student(id, name, year){
   this.id = id;
   this.name = name;
   this.year = year;
}

如果您现在实例化学生,您可以访问这些值...
var student = new Student(1, "Name", 2012);
console.log(student.year); // => 2012

使用 var 时,您不能...
function Student (id, name, year){
   var id = id;
   var name = name;
   var year = year;
}

var student = new Student(1, "Name", 2012);
console.log(student.year); // => undefined

关于Javascript : difference two ways declare variable in a function,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11735794/

10-12 14:10