你的位置:首页 > Java教程

[Java教程]进阶笔记


Functionde 对象的实例可以创建构造函数  

1 var Myfunc = new Function();  //创建一个Function的实例2 3 var myfun = new Myfunc(); //创建一个Myfunc实例

但是Object对象就不能,当完成一个object对象的实例化后,不能再基于新实例使用new 创建一个实例

1 var Myobj = new Object(); //实例化一个Object对象2 3 var newobj = new Myobj(); //将出错

 添加公有方法

要在构造函数的新实例中添加公有方法,使用点号想它的原型属性添加即可。

 1 //创建一个构造函数 2 function Myfunc(){ 3   //..... 4 } 5 //为构造函数添加一个公有方法 newway 6 Myfunc.prototype.newway = function (){ 7   //..... 8 } 9 //该方法可以在Myfunc的实例上调用10 var myway = new Myfunc();11 myway.newway();  //可以运行

但是不能直接在 Myfunc 上运用 

如:Myfunc.newway();     //将出错,因为Myfunc是Function的实例

添加私有成员:只需在构造函数中用普通的var和function关键字定义;

1 function Myfunc(){2   //定义私有属性3   var my = 'luo';4   //定义私有方法5   function inside(){6    //..... 7  }8 };

但是在构造函数内定义的私有成员,不能被实例调用,

var myfunc1 = new Myfunc();

myfunc1.inside();//将出错

只限制在构造函数的作用域内,所以也不能通过对象自己的公有方法来访问他们;所以需要定义一个特权方法  (在构造函数中使用 this 定义的方法)  

1 function special(){2   var me = 'luo';3   function meway(){4   //....5   };6   this.alertway = functioon(){7   alert(me);8   };9 }
//正常弹出 luo


(看书 -- JavaScript DOM高级程序设计  做的笔记复制了上来,如果有什么不对请指出。。。)