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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式-继承模式

發布時間:2025/3/18 asp.net 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式-继承模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該例子使用了兩種繼承方式,詳情可參見https://segmentfault.com/a/11...

<!DOCTYPE html> <html> <head lang="en"><meta charset="UTF-8"><title>繼承模式</title> <head> <body><button onclick="sub()">click me</button> </body> </html><script type="text/javascript">//葉子對象的父類 var Field = function(id) {this.id = id; } Field.prototype.save = function() {sessionStorage.setItem(this.id, this.getValue());console.log(sessionStorage.getItem(this.id)); }//因select和textarea的取值方式和input不一樣 //所以單獨抽離獲取值的方法 //如果子類不覆蓋此方法,save就會出錯,所以用拋異常的方式,保證子類覆蓋 Field.prototype.getValue = function() {throw new Error('you should override this method'); }//葉子對象的子類InputField var InputField = function(label, id, type) {//繼承父類的id屬性,相當于在InputField加上了this.id = idField.call(this, id);//創建input節點this.input = document.createElement('input');this.input.id = id;this.input.type = type;//創建文本節點this.label = document.createElement('label');var labelTextNode = document.createTextNode(label);this.label.appendChild(labelTextNode);//創建div節點this.divElement = document.createElement('div');this.divElement.className = 'input-field';//添加到div節點this.divElement.appendChild(this.label);this.divElement.appendChild(this.input); }//開始繼承 function extend(newobj, obj) {var F = function() {};F.prototype = obj.prototype;newobj.prototype = new F();newobj.prototype.constructor = newobj; }//先得到父類的prototype上的方法 extend(InputField, Field);//覆蓋父類的方法,如果不覆蓋,會拋異常 InputField.prototype.getValue = function() {return this.input.value; }//實驗一下 var input = new InputField('用戶名', 'userName', 'text'); document.body.appendChild(input.divElement); function sub() {input.save() } </script>

總結

以上是生活随笔為你收集整理的设计模式-继承模式的全部內容,希望文章能夠幫你解決所遇到的問題。

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