国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:36:29
字體:
來源:轉載
供稿:網友

本文實例講述了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            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 博乐市| 广水市| 伊川县| 出国| 广河县| 靖远县| 哈密市| 福泉市| 阿拉尔市| 吉水县| 乌兰县| 安国市| 贡山| 伊通| 宣武区| 时尚| 固原市| 龙泉市| 敖汉旗| 吴忠市| 射阳县| 萨迦县| 宿州市| 台州市| 泽库县| 即墨市| 卫辉市| 老河口市| 商城县| 怀化市| 普定县| 略阳县| 哈密市| 荆门市| 抚州市| 彝良县| 敖汉旗| 五寨县| 建昌县| 堆龙德庆县| 库伦旗|