您好,登錄后才能下訂單哦!
這篇文章主要介紹“javascript能定義實例方法嗎”,在日常操作中,相信很多人在javascript能定義實例方法嗎問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”javascript能定義實例方法嗎”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
javascript可以定義實例方法,方法:1、利用JavaScript對象原型引用prototype來實現實例方法;2、在對象實例上直接定義方法;3、通過this指針來定義實例方法。
本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
1、利用JavaScript對象原型引用prototype來實現實例方法
var BaseClass = function() {}; BaseClass.prototype.method1 = function(){ alert(' This is a instance method '); } var instance1 = new BaseClass(); instance1.method1(); //This is a instance method
2、在實例上直接定義方法(對象)
var BaseClass = function() {}; var instance1 = new BaseClass(); instance1.method1 = function(){ alert(' This is a instance method too '); } instance1.method1();//This is a instance method too
3、通過this指針來定義實例方法 (變量)
var BaseClass = function() { this.method1 = function(){ alert(' Defined by the "this" instance method'); } }; var instance1 = new BaseClass(); instance1.method1();//Defined by the "this" instance method
那么同時咋實例、原型引用上和"this"上定義相同的實例方法后,實例會優先調用哪一個呢?
var BaseClass = function() { this.method1 = function(){ alert(' Defined by the "this" in the instance method'); } }; var instance1 = new BaseClass(); instance1.method1 = function(){ alert(' Defined directly in the instance method'); } BaseClass.prototype.method1 = function(){ alert(' Defined by the prototype instance method '); } instance1.method1();//Defined directly in the instance method
* 通過運行結果跟蹤測試可以看出直接砸實例上的變量的優先級要高于定義在“this”上的;
* 而定義在“this”上的又高于prototype定義的變量;
* 即直接定義在實例上的變量會覆蓋定義在“this”上和prototype定義的變量,定義在“this'”上的會覆蓋prototypetype定義的變量。
到此,關于“javascript能定義實例方法嗎”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。