我想创建一个对象。而且,在我读过的几乎代码中,他们经常使用这种风格:
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/