亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

javascript面向對象程序設計實踐常用知識點總結

2019-11-19 11:06:51
字體:
來源:轉載
供稿:網友

本文實例講述了javascript面向對象程序設計實踐常用知識點。分享給大家供大家參考,具體如下:

實踐一:原型中的引用類型的屬性是共享的

var Person = function(){};Person.prototype = {  info:{    "name":"Tom"  }}var p1 = new Person();var p2 = new Person();p1.info.name = '我是p1';p2.info.name = '我是p2';console.log(p1.info.name); // 我是p2console.log(p2.info.name); // 我是p2

分析:p1,p2都是實例化出來的對象,p1.info 和p2.info 都是指向同一塊堆內存,給p1.info.name賦值,和給p2.info.name賦值修改的都是同一個地方,由于代碼從上到下依次執行,那么在console的時候自然都是打印出 '我是p2'。總結:由此可以看出原型內的引用類型的屬性是共享的。

實踐二:原型的引用類型,當實例化后并重新給引用類型屬性賦值,地址發生變化。

var Person = function(){};Person.prototype = {  info:{    "name":"Tom"  }}var p1 = new Person();var p2 = new Person();p1.info = {"name":"哈哈"};;console.log(p1.info.name); // 哈哈console.log(p2.info.name); // Tom

分析:上面代碼當執行到 p1.info = {"name":"哈哈"}的時候,p1的info這個引用類型的屬性,指向了新的地址。而p2.info 沒有做出任何修改,還是指向對象原型中的那個地址。

實踐三:對象中值類型的屬性不共享

var Person = function(name,age){  this.name = name;  this.age = age;};var p1 = new Person('Tom',10);var p2 = new Person('Lucy','8');console.log(p1.name); // Tomconsole.log(p2.name); // Lucy

實踐四:屬性屏蔽理論

var Person = function () {  this.name = '小明',  this.buy = function () {    console.log('去買面包');  }};Person.prototype = {  name:"原型中的小明",  buy:function() {    console.log('去買汽水');  },  age:10}var p = new Person();// 正常情況下我們去訪問p里的屬性和方法。// 可以看出原型中的屬性和方法的優先級沒有構造函數中的高,如果構造函數中沒有,會去原型中查找console.log(p.name);// 小明p.buy();// 控制臺輸出 去買面包console.log(p.age); // 10// 如果我們要訪問原型中的屬性和方法可以這樣delete p.name; // 此處會刪除構造函數中的屬性console.log(p.name);// 原型中的小明Person.prototype.buy(); // 控制臺輸出 去買汽水

實踐五:對象中的 hasOwnProperty 方法

var Person = function () {  this.name = 'Tom';}Person.prototype = {  age:30}var p = new Person();console.log(Person.hasOwnProperty('name')); // trueconsole.log(p.hasOwnProperty('name')); // trueconsole.log(Person.hasOwnProperty('age')); // falseconsole.log(p.hasOwnProperty('age')); // falsevar ClassRoom = {  contain:100,  leader:'小明',  teacher:'王老師'}console.log(ClassRoom.hasOwnProperty('leader')); // trueconsole.log( p.hasOwnProperty === Object.prototype.hasOwnProperty ); //trueconsole.log( Person.hasOwnProperty === Object.prototype.hasOwnProperty ); //trueconsole.log( ClassRoom.hasOwnProperty === Object.prototype.hasOwnProperty ); //true

分析:上面說明了一個問題,hasOwnProperty 這個方法是看是不是對象自身下面的屬性,可以用對象和實例對象訪問,并且只會去找構造函數和字面量中的屬性并且 hasOwnProperty 繼承自 Object

實踐六:自定義對象中的 constructor 和 __proto__(有關原型鏈的問題,我們以后再來說)

/* 每個實例對象都會默認生成一個constructor 和 __proto__ 屬性 這一條不管是內置對象還是自定義對象都是一樣的 */function A() {};var a = new A();console.log(a.constructor === A); // true 默認情況下實例的constructor指向實例的構造函數console.log(a.__proto__ === A.prototype); // true 默認情況下,實例的__proto__屬性指向類的prototype/* 當我們修改 constructor 和 __proto__ 屬性時候 */function B() {};// 手動修改原型鏈B.prototype = { __proto__:String.prototype}var b = new B();// instanceof 用來判斷obj1是否是obj2的一個實例,可見用 instanceof 來判斷數據類型也是不準確的。// 這里涉及到繼承,而js面向對象中的繼承就是通過原型鏈來實現的。console.log(b instanceof B); // trueconsole.log(b instanceof String); // trueconsole.log(b instanceof Object); // trueconsole.log(b.constructor === B); // false 此處b的構造函數不是B了,因為原型鏈指到String上去了。console.log(b.constructor === String); //true// 手動修改b的constructor ,如果自己不設置,那么就會去尋找原型鏈,如上//b.constructor = B; 或者 B.prototype.constructor = B;// 手動設置后,就會按照設置的來走,如下:b.constructor = B;console.log(b.constructor === B); // trueconsole.log(b.__proto__=== B.prototype); // trueconsole.log(B.prototype.__proto__=== String.prototype); // true;// 下面這兩個也是原型鏈的內容// B是函數,函數的constructor 是 Function,函數的__proto__ 是Function.prototypeconsole.log(B.constructor === Function); // trueconsole.log(B.__proto__ === Function.prototype); // true

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.VeVB.COm/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本sm极度另类视频| 精品国产欧美成人夜夜嗨| 午夜精品久久久久久久久久久久久| 日本19禁啪啪免费观看www| 国产精品久久不能| 国产激情999| 欧美制服第一页| 视频在线观看一区二区| 欧美亚洲国产成人精品| 精品久久久久久久久久ntr影视| 久久久精品一区| 精品视频—区二区三区免费| 久久激情五月丁香伊人| 亚洲精品久久久久久下一站| 欧美专区中文字幕| 97av在线视频免费播放| 国产精品亚洲аv天堂网| 成人亚洲综合色就1024| 91在线视频导航| 欧美美最猛性xxxxxx| 在线看日韩欧美| 国产精品福利观看| 欧美午夜女人视频在线| 国产91精品高潮白浆喷水| 欧美电影在线观看| 久久久久久久久久婷婷| 精品成人国产在线观看男人呻吟| 久久久精品国产一区二区| 久久免费精品日本久久中文字幕| 亚洲成年网站在线观看| 91精品国产网站| 综合网中文字幕| 久久亚洲电影天堂| 精品露脸国产偷人在视频| 久久国产精品视频| 欧美大成色www永久网站婷| 国产成人精品av在线| 国产成人av在线播放| 欧美国产第一页| 青草成人免费视频| 亚洲欧洲国产伦综合| 久久综合电影一区| 日av在线播放中文不卡| 日本国产精品视频| 国产日韩精品电影| 欧美一级电影在线| 国产精品电影网| 国内精品久久久久影院优| 亚洲精品欧美日韩专区| 国产69久久精品成人| 亚洲国产精品高清久久久| 国产午夜精品美女视频明星a级| 在线观看精品自拍私拍| 国产亚洲一区二区在线| 国产色视频一区| 欧美网站在线观看| 日韩欧美在线字幕| 成人免费大片黄在线播放| 中文字幕亚洲在线| 亚洲欧美自拍一区| 欧美视频国产精品| 亚洲精品国产精品自产a区红杏吧| 欧美日韩免费看| 欧美精品制服第一页| 在线看日韩欧美| 亚洲小视频在线观看| 免费91在线视频| 亚洲第一网中文字幕| 亚洲日韩中文字幕在线播放| 欧美成人精品在线视频| 欧美激情亚洲国产| 岛国精品视频在线播放| 伦理中文字幕亚洲| 欧美肥老妇视频| 一本色道久久88亚洲综合88| 亚洲欧美日韩高清| 欧美夜福利tv在线| 日韩免费在线播放| 亚洲欧洲日产国产网站| 亚洲最大福利网站| 欧美日韩成人免费| 日韩中文字幕视频在线观看| 97色伦亚洲国产| 欧美在线视频a| 久久综合色影院| 国产成人欧美在线观看| 欧美一级电影在线| 夜夜嗨av一区二区三区免费区| 国产香蕉一区二区三区在线视频| 国产91露脸中文字幕在线| 91精品久久久久久| 亚洲精品第一国产综合精品| 国产日韩av在线播放| www.欧美免费| 国产精品精品久久久久久| 日本不卡视频在线播放| 91夜夜未满十八勿入爽爽影院| 欧美日韩在线影院| 久久亚洲精品小早川怜子66| 国产在线观看精品一区二区三区| 黑人欧美xxxx| 亚洲天堂网在线观看| 视频在线观看99| 中文字幕免费精品一区| 色爱av美腿丝袜综合粉嫩av| 欧美成人sm免费视频| 久久久久免费视频| 亚洲自拍偷拍网址| 国产综合福利在线| 亚洲高清一二三区| 精品国产乱码久久久久久婷婷| 亚洲图片制服诱惑| 17婷婷久久www| 国产精品久久久久久久久久久不卡| 国产精品看片资源| 国产男人精品视频| 国产成人一区二区| 国产精品嫩草视频| 欧美日韩不卡合集视频| 欧美性videos高清精品| 欧美成人免费播放| 黑人巨大精品欧美一区二区一视频| 欧洲成人在线视频| 亚洲欧美一区二区精品久久久| 中文字幕精品视频| 亚洲最新av网址| 一区二区三区久久精品| 亚洲老头老太hd| 中文字幕日韩av电影| 日本韩国在线不卡| 亚洲激情视频网| 亚洲三级免费看| 91爱视频在线| 日韩最新在线视频| 2021久久精品国产99国产精品| 在线日韩中文字幕| 黑人巨大精品欧美一区二区一视频| 精品亚洲va在线va天堂资源站| 亚洲人a成www在线影院| 久热99视频在线观看| 国产丝袜一区二区三区| 国产精品日韩在线播放| 久久97精品久久久久久久不卡| 亚洲а∨天堂久久精品9966| 国产午夜精品全部视频在线播放| 欧美日韩中文字幕在线| 欧美亚洲国产日本| 自拍偷拍亚洲一区| 亚洲天堂男人天堂女人天堂| 免费97视频在线精品国自产拍| 国产大片精品免费永久看nba| 国产美女直播视频一区| 欧美国产日韩二区| 国产一区二区在线播放| 一夜七次郎国产精品亚洲| 26uuu另类亚洲欧美日本一| 日韩在线中文字幕| 国产精品欧美在线| 奇米一区二区三区四区久久| 亚洲人午夜色婷婷| 55夜色66夜色国产精品视频| 亚洲精品电影网| 日韩av在线网址| 欧美孕妇孕交黑巨大网站|