日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js自定义类,混合的构造函数/原型方式

發布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js自定义类,混合的构造函数/原型方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
“混合的構造函數/原型方式” 用構造函數來定義非函數屬性,用原型方式定義對象的函數屬性,結果所有函數都只創建一次,而每個對象都具有自由的對象屬性實例。
?function ocar(color){
??this.color = color;
??this.arr = new Array("s");
?}
?ocar.prototype.showColor = function(){
??alert(this.color);
?}
?var car = new ocar("resd");
?car.showColor(); 二、為類添加新方法: 可以用prototype屬性為以有的類定義新的方法: 比如為Array定義一個dequeue()方法 //創建新的方法 Array.prototype.dequeue = function(str){
?this.push(str);
}
var arr = new Array("s");
arr.dequeue("a");
alert(arr.toString()); 三、重定義已有的方法: 就像給已有類定義新方法一樣,也可以重寫類的方法。函數名只是指向函數的指針,因此可以輕易的使用它指向別的函數。從寫已有方法的時候Function的第一個F要大寫 修改本地類toString()方法。 Function.prototype.toString = function(){
?return "重寫toString";
}
function sayHi(){
?alert("Hi");
}
alert(sayHi.toString); 四、類的繼承: JS類的繼承有很多種,這因為JS種的繼承機制并不是明確規定的,而是通過模仿實現的,這意味著所有的繼承細節并不是完全解釋程序處理。所以我們選擇一種適合自己的方法就可以了。 一、對象冒充: 構造函數使用this關鍵字給所有屬性和方法賦值,因為構造類只是一種函數,所以可以使ClassA的構造函數成為ClassB的方法,然后調用它,ClassB就會收到ClassA的構造函數中定義的屬性和方法。例如 function oren(name){
?this.name = name;
?this.sayName = function(){
??alert(this.name);
?}
}
function orenB(name,sex){
?this.newfun = oren;
?this.newfun(name);
?delete this.newfun;
?this.sex = sex;
?this.showSex = function(){
??alert(this.sex);
?}
}
var testA = new oren("linan");
testA.sayName();
var testB = new orenB("ln","男");
testB.sayName();
testB.showSex(); 所有的新屬性和新方法都必須在刪除了新方法的代碼后定義。否則會覆蓋超類的相關屬性和方法。 二、call()方法: call()方法是與經典的對象冒充方法最相似的方法。它的第一個參數用作this的對象,其他參都直接傳遞給函數本身。 function oren(name){
?this.name = name;
?this.sayName = function(){
??alert(this.name);
?}
}
function orenB(name,sex){
?oren.call(this,name);
?this.sex = sex;
?this.getSex = function(){
??alert(this.sex);
?}
}
var test = new oren("ln");
test.sayName();
var testB = new orenB("linan","man");
testB.sayName();
testB.getSex();

這是call()方法繼承的例子,這里想讓oren中的關鍵字this等于新創建的orenB對象,因此this是第一個參數

轉載于:https://www.cnblogs.com/div-css-js/p/4848777.html

總結

以上是生活随笔為你收集整理的js自定义类,混合的构造函数/原型方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。