function student () {
var name = 'xxx';
var getName = function () {
return name
}
var setName = function (newName) {
name = newName;
}
return {
getName: getName,
setName: setName,
name: name
}
}
var studentA = student();
console.log(studentA.getName())
studentA.setName("aaa");
console.log(studentA.getName())
console.log(studentA.name);
为啥输出了是
按道理不是名字已经变成aaa了吗?
更具指导是要在get和set里面都加上this.name就可以了,请问是为什么,我之前写的两个name不是同一个作用域?
我知道了,我把闭包分配的空间和return的空间混淆在一起了,所以没用this是对闭包的 空间的修改然后用this是对这个return的对象的修改
撒科打诨
慕雪6442864
相关分类