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

首頁 > 開發 > JS > 正文

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

2024-05-06 16:53:46
字體:
來源:轉載
供稿:網友

本文實例講述了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'??偨Y:由此可以看出原型內的引用類型的屬性是共享的。

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

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

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


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩第一页| 国产精品久久久一区| 人九九综合九九宗合| 国产精品色午夜在线观看| 国产精自产拍久久久久久蜜| 成人自拍性视频| 亚洲性日韩精品一区二区| 国模极品一区二区三区| 九九热视频这里只有精品| 日韩一区二区三区xxxx| 国产精品久久99久久| 欧美日韩国产激情| 日韩在线视频一区| 国产成人自拍视频在线观看| 色先锋资源久久综合5566| 欧美中文在线免费| 日本午夜在线亚洲.国产| 国产精品三级美女白浆呻吟| 国产精品99久久久久久久久久久久| 亚洲国产精品成人av| 自拍偷拍亚洲区| 第一福利永久视频精品| 91久久综合亚洲鲁鲁五月天| 精品国产一区二区三区四区在线观看| 国产不卡视频在线| 91高清视频免费| 日韩电影中文字幕一区| 欧美午夜视频在线观看| 国产精品精品久久久| 日韩欧美国产一区二区| 欧美大片免费观看| 欧美多人乱p欧美4p久久| 久久影视电视剧免费网站清宫辞电视| 国产精品久久久久久久久粉嫩av| 亚洲欧美日韩天堂| 久久99亚洲精品| 国产91精品不卡视频| 精品久久久香蕉免费精品视频| 欧美成人精品xxx| 久久久免费精品视频| 国产亚洲免费的视频看| 久久精品视频在线播放| 精品久久久久久久久久久久久| 国产在线观看精品一区二区三区| 欧美成aaa人片在线观看蜜臀| 亚洲性生活视频| 久久影视电视剧免费网站清宫辞电视| 欧美性黄网官网| 美女精品久久久| 成人福利视频网| 欧美日本高清一区| 亚洲一级一级97网| 日韩美女视频在线观看| 黄色一区二区在线观看| 亚洲第一区在线| 欧美极品少妇与黑人| 精品在线观看国产| 毛片精品免费在线观看| 97视频免费观看| 伊人久久综合97精品| 日韩乱码在线视频| 精品国产乱码久久久久久婷婷| 成人免费福利视频| 精品久久久久久中文字幕大豆网| 2019中文字幕在线观看| 日本a级片电影一区二区| 国产伦精品一区二区三区精品视频| 91中文在线观看| 国产精品日韩在线一区| 国产精品久久久久999| 国产成人a亚洲精品| 国产成人精品久久亚洲高清不卡| 国产精品视频导航| 色婷婷综合成人av| 欧美丝袜美女中出在线| 国产女精品视频网站免费| 欧美亚洲日本网站| 国产成人拍精品视频午夜网站| 尤物yw午夜国产精品视频明星| 欧美大尺度在线观看| 日韩毛片中文字幕| 国内精品小视频在线观看| 国产91热爆ts人妖在线| 欧美日韩高清区| 精品毛片网大全| 九九久久久久久久久激情| 欧美综合国产精品久久丁香| 中文字幕日韩欧美精品在线观看| 亚洲成人网在线观看| 日韩av有码在线| 日本一欧美一欧美一亚洲视频| 日韩在线观看免费全| 亚洲天堂av高清| 日韩免费不卡av| 久久综合伊人77777| 欧美激情一区二区三区高清视频| 日韩欧美在线视频| 久久久国产影院| 久久视频精品在线| 亚洲国产精品资源| 91成人在线播放| 国产精品第3页| 亚洲综合在线小说| y97精品国产97久久久久久| 亚洲图片欧美日产| 亚洲精品短视频| 亚洲天堂av高清| 久久久精品亚洲| 91av在线免费观看| 久久69精品久久久久久国产越南| 亚洲精品久久久一区二区三区| 国产精品h在线观看| 日韩欧美精品免费在线| 亚洲国产精品嫩草影院久久| 国产精品久久久久久av福利| 国语自产精品视频在免费| 亚洲国产黄色片| 国产精品自产拍高潮在线观看| 国产精品视频网| 日韩av免费在线播放| 久久视频在线视频| 欧美亚洲成人xxx| 亚洲第一精品久久忘忧草社区| 欧美成人性色生活仑片| 久久99热精品| 91影视免费在线观看| 亚洲成人在线网| 久久久女女女女999久久| 欧美激情视频给我| 国产精品偷伦一区二区| 92国产精品视频| 欧美日韩第一页| 午夜精品久久久久久久99热浪潮| 国产精品久久色| 欧美精品videosex极品1| 91在线视频一区| 97色伦亚洲国产| 国产一区二区三区在线| 欧美中文在线观看国产| 国产成人久久久精品一区| 黑人巨大精品欧美一区免费视频| 亚洲国产成人精品女人久久久| 6080yy精品一区二区三区| 亚洲全黄一级网站| 久久精品国产一区| 成人黄色免费看| 亚洲精品久久久久久久久| 午夜精品美女自拍福到在线| 欧美在线观看视频| 国产精品日韩在线| 九九精品在线视频| 亚洲一区美女视频在线观看免费| 亚洲精品之草原avav久久| 日本高清+成人网在线观看| 日韩久久精品电影| 国产一区二区三区高清在线观看| 国产在线观看91精品一区| 亚洲国产99精品国自产| 欧美午夜精品伦理| 国内精品久久久久久久久| 国产精品老女人视频| 久久久之久亚州精品露出| www.日本久久久久com.| 国产精品亚发布|