摘要:和的作用一樣,區(qū)別在于寫法語(yǔ)法對(duì)象對(duì)象作用判斷對(duì)象是否在對(duì)象的原型鏈上語(yǔ)法對(duì)象構(gòu)造函數(shù)作用判斷構(gòu)造函數(shù)的屬性是否在對(duì)象的原型鏈上,如果在,就返回屬性是否可枚舉用于檢查給定的屬性是否能夠使用語(yǔ)句。
## javascript對(duì)象原型成員詳解 ## ECMAScript 中的對(duì)象就是一組數(shù)據(jù)和功能的集合,對(duì)象可以通過(guò) new 操作符后跟要?jiǎng)?chuàng)建的對(duì)象名稱來(lái)創(chuàng)建。 var obj = new Object( ); //在不傳參數(shù)的情況下省略號(hào)可以不寫但不推薦 由 Object 類型為基礎(chǔ)創(chuàng)建出的 obj 實(shí)例對(duì)象,可以使用 Object類型上所具有的任何屬性和方法。 Object 的每個(gè)創(chuàng)建出來(lái)的實(shí)例都有以下的屬性和方法,這些屬性和方法存在于它的原型對(duì)象中(Object.prototype)
Constructor: 構(gòu)造函數(shù),保存著用于創(chuàng)建當(dāng)前對(duì)象的函數(shù),此時(shí)的構(gòu)造函數(shù)為 Object()
hasOwnProperty(propertyName):有自己的屬性,用于檢查給定的屬性是否在當(dāng)前的對(duì)象的實(shí)例中存在 (而不是在實(shí)例的原型中,和 in 運(yùn)算符有差別)。
語(yǔ)法: 對(duì)象.hasOwnProperty("屬性");
作用: 判斷該屬性是否是對(duì)象自身的,如果是則返回 true,不然就返回 false
in 運(yùn)算符:判斷屬性能否被對(duì)象訪問(wèn)到,不管屬性是對(duì)象自身的,還是在原型鏈上的,只要能夠訪問(wèn)到,就返回 true,如果不能就返回 false。
3.isPrototypeOf(object): 是否是原型歸屬,用于檢查傳入的對(duì)象是否是傳入對(duì)象的原型。(和 instanceof的作用一樣,區(qū)別在于寫法)
語(yǔ)法: 對(duì)象A.isPrototypeOf(對(duì)象B);
作用: 判斷對(duì)象A是否在對(duì)象B的原型鏈上
instanceof:
語(yǔ)法: 對(duì)象 instanceof 構(gòu)造函數(shù)
作用: 判斷構(gòu)造函數(shù)的 prototype 屬性是否在對(duì)象的原型鏈上,如果在,就返回 true
4.propertyIsEnumerable(propertyName):屬性是否可枚舉:用于檢查給定的屬性是否能夠使用 for-in 語(yǔ)句。
語(yǔ)法: 對(duì)象.propertyISEnumerable("屬性");
作用: 判斷屬性是否可以遍歷(只有屬性是對(duì)象自身的并且屬性可以遍歷的時(shí)候才返回 true)
手動(dòng)給對(duì)象的實(shí)例對(duì)象或者原型對(duì)象添加的屬性默認(rèn)都是可以遍歷的,但是它原型對(duì)象上自帶的成員默認(rèn)是不可以遍歷的。
那如何給對(duì)象添加一個(gè)不可遍歷的屬性呢?
這里可以使用 Object.defineProperty();
語(yǔ)法:Object.defineProperty(obj, prop, desc);
參數(shù)說(shuō)明:
obj:指定的對(duì)象 prop: 所要添加的屬性(字符串) desc:屬性描述符,是個(gè)對(duì)象
舉例說(shuō)明一下:
Object.defineProperty(obj, "gender",{ value: "female", //value 給這個(gè)對(duì)象的該屬性設(shè)置默認(rèn)值 enumerable: true, //enumerable 設(shè)置屬性是否可以遍歷,true為可遍歷 writable: false //writable 設(shè)置屬性是否可以修改,true為可修改 })
5.tolocaleStrin: 返回對(duì)象的字符串表示,該字符串和執(zhí)行環(huán)境的地區(qū)對(duì)應(yīng)
6.toString:返回對(duì)象的字符串表示
7.valueOf:返回對(duì)象的字符串,數(shù)字或者布爾值表示,通常與toString()方法的返回值相同
額外提到的一點(diǎn)是 對(duì)象咋進(jìn)行運(yùn)算或者比較的時(shí)候,js內(nèi)部會(huì)自動(dòng)調(diào)用 valueOf && toString 這兩個(gè)方法
調(diào)用規(guī)則:
- 首先調(diào)用 valueOf 方法,嘗試將對(duì)象轉(zhuǎn)成簡(jiǎn)單數(shù)據(jù)類型,如果沒(méi)有轉(zhuǎn)成簡(jiǎn)單數(shù)據(jù)類型,則繼續(xù)調(diào)用 toString 方法,將對(duì)象轉(zhuǎn)成字符串 - 如果對(duì)象分別調(diào)用 valueOf 的方法和 toString 的方法,都沒(méi)有轉(zhuǎn)成簡(jiǎn)單數(shù)據(jù)類型,就會(huì)報(bào)錯(cuò) 注意的是在 ECMAScript 中 Object是所有對(duì)象的而基礎(chǔ),因此所有的對(duì)象都具有這些基本屬性和方法。
參考文獻(xiàn)
javascript高級(jí)程序設(shè)計(jì)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/98090.html
摘要:當(dāng)這步完成,這個(gè)對(duì)象就與構(gòu)造函數(shù)再無(wú)聯(lián)系,這個(gè)時(shí)候即使構(gòu)造函數(shù)再加任何成員,都不再影響已經(jīng)實(shí)例化的對(duì)象了。此時(shí),對(duì)象具有了和屬性,同時(shí)具有了構(gòu)造函數(shù)的原型對(duì)象的所有成員,當(dāng)然,此時(shí)該原型對(duì)象是沒(méi)有成員的。 前言 本篇文章用來(lái)記錄下最近研究對(duì)象的一些心得,做一個(gè)記錄與總結(jié),以加深自己的印象,同時(shí),希望也能給正在學(xué)習(xí)中的你一點(diǎn)啟發(fā)。本文適合有一定JavaScript基礎(chǔ)的童鞋閱讀。原文戳這...
摘要:原型對(duì)象內(nèi)部也有一個(gè)指針屬性指向構(gòu)造函數(shù)實(shí)例可以訪問(wèn)原型對(duì)象上定義的屬性和方法。在創(chuàng)建子類型的實(shí)例時(shí),不能向超類型的構(gòu)造函數(shù)中傳遞參數(shù)。 贊助我以寫出更好的文章,give me a cup of coffee? 2017最新最全前端面試題 私有變量和函數(shù) 在函數(shù)內(nèi)部定義的變量和函數(shù),如果不對(duì)外提供接口,外部是無(wú)法訪問(wèn)到的,也就是該函數(shù)的私有的變量和函數(shù)。 function ...
摘要:舉例說(shuō)明組合繼承組合繼承利用原型鏈借用構(gòu)造函數(shù)的模式解決了原型鏈繼承和類式繼承的問(wèn)題。示例組合式繼承是比較常用的一種繼承方法,其背后的思路是使用原型鏈實(shí)現(xiàn)對(duì)原型屬性和方法的繼承,而通過(guò)借用構(gòu)造函數(shù)來(lái)實(shí)現(xiàn)對(duì)實(shí)例屬性的繼承。 對(duì)js原型和繼承的理解一直處于不懂-懂-不懂-懂-不懂。。。的無(wú)限循環(huán)之中,本來(lái)打算只是簡(jiǎn)單總結(jié)下js繼承方式,可看了些網(wǎng)上的資料后,發(fā)現(xiàn)又不懂繼承了。。。這篇文章只...
摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過(guò)對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來(lái)。注意中,對(duì)象一定是通過(guò)類的實(shí)例化來(lái)的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過(guò)對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來(lái)。注意中,對(duì)象一定是通過(guò)類的實(shí)例化來(lái)的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
閱讀 3579·2023-04-25 20:41
閱讀 2674·2023-04-25 16:40
閱讀 1444·2021-09-23 11:44
閱讀 1261·2021-09-10 10:51
閱讀 1691·2021-09-07 09:59
閱讀 1677·2019-12-27 12:08
閱讀 567·2019-08-30 15:44
閱讀 3344·2019-08-30 11:08