(function(){
var name=10;
Person=function(){};
Person.prototype.sayName=function(){
alert(name+5);
};
var friend = new Person();//创建一个实例对象
friend.sayName(); //15 搜索到的是原型对象的sayName方法
})();
(function( ){...})( );在函数内部的一个作用域内
Person前没有加var变量,定义的是一个全局变量,但不是纯全局的,只是在块级function作用域内(想象在一个大框内,有一个全局变量name,有一个Person的构造函数,有一个Person指向的原型对象,所以当我创建一个实例对象的时候,name这个属性变成公共的了,所以我可以访问的到)
这就是为什么说变量name变成了一个静态的、由所有实例共享的属性
时间: 2024-11-29 01:31:39