Functionde 對象的實例可以創建構造函數 但是Object對象就不能,當完成一個object對象的實例化後,不能再基於新實例使用new 創建一個實例 添加公有方法 要在構造函數的新實例中添加公有方法,使用點號想它的原型屬性添加即可。 但是不能直接在 Myfunc 上運用 如:Myfunc.n ...
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高級程式設計 做的筆記複製了上來,如果有什麼不對請指出。。。)