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