例子来自《高程三》6.2.7:
function Person(name, age, job){
//创建要返回的对象
var o = new Object();
//可以在这里定义私有变量和函数
//添加方法
o.sayName = function(){
alert(name);
};
//返回对象
return o;
}
var friend = Person("Nicholas", 29, "Software Engineer");
friend.sayName(); //"Nicholas"
问题:想问下这个friend.sayName()
涉不涉及闭包,涉及的话关联的作用域对象是?不涉及的话name等变量在哪里保存?
涉及闭包。可以先打出friend.sayName
匿名函数的Scopes属性的第一个值就是friend.sayName在创建时形成的闭包。第二个值是window。