首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

函数中定义 var self = this 的功用

2012-09-07 
函数中定义 var self this 的作用function?Class1(){????????????//self(self被附加到了对象上)?self只

函数中定义 var self = this 的作用

function?Class1(){

????????????//self(self被附加到了对象上)?self只对私有成员可见(能.点出来?i?aa()?.点不出来public_dd())
????????????var?self?=?this;
????????????this.i?=?1;
????????????this.aa?=?function(){
????????????????this.i?++;
????????????????alert(this.i);
????????????}
????????????var?private_bb?=?function(){
????????????????alert(self.i);
????????????????//self.public_dd();//错误?self无法从外部访问,同时self也无法被这个对象的公共方法所访问
????????????????//aa();//错误??私有方法要通过self调用
????????????????public_dd();//可以直接调用?不能用self.public_dd();
????????????????self.aa();
????????????}
????????????this.cc?=?function(){
????????????????private_bb();//私有函数
????????????}
????????????
????????????//可以直接调用
????????????//??对象的公共方法
????????????function?public_dd()
????????????{
????????????????self.aa();
????????????????alert("dd");
????????????}
????????}

?var?o?=?new?Class1();//调用Class1构造函数不运行++(初始化没有调用不运行)
?o.cc();//运行++
?document.write(o.i);//return?2

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var?self?=?this?//指代函数内部的执行环境
在函数Class1中通过?this.方式定义的属性和方法,能被实例o直接访问和调用,其他的属性和方法则是函数Class1的私有属性和方法,只能被内部访问和调用,通过self.或this.方式.

热点排行