摘要:前言原生提供對象的所有其他對象都繼承自對象,即這些對象都是的實例對象的原生方法分為兩類本身的方法的實例方法對象本身的方法直接定義在對象的方法方法就是直接定義在對象上的實例方法定義在原型對象上的方法,可以被實例直接使用定義了一個方法,然后生成
前言
JavaScript原生提供Object對象
JavaScript的所有其他對象都繼承自Object對象,即這些對象都是Object的實例
Object對象的原生方法分為兩類:Object本身的方法、Object的實例方法
Object對象本身的方法直接定義在Object對象的方法
Object.print = function (o) { console.log(o); }
print方法就是直接定義在Object對象上
Object的實例方法定義在Object原型對象Object.prototype上的方法,可以被Object實例直接使用
Object.prototype.print = function () { console.log(this); }; var obj = new Object(); obj.print() // Object
Object.prototype定義了一個print方法,然后生成一個Object的實例obj,obj直接繼承了Object.prototype的屬性和方法,所以可以直接使用obj.print調用print方法,實質上就是obj對象的print方法就是調用Object.prototype.print方法
凡是定義在Object.prototype對象上面的屬性和方法,將被所有實例對象共享
Object()Object本身是一個函數,可以當作工具方法使用,將任意值轉為對象1、Object()返回一個空對象此方法常用于保證某個值一定是對象
var obj = Object(); // 等同于下面兩條語句 var obj = Object(undefined); var obj = Object(null); obj instanceof Object // true
Object()返回一個空對象
instanceof運算符驗證,一個對象是否為指定的構造函數的實例,obj對象時Object的實例
2、如果參數是原始類型的值,Object()將其轉為對應的包裝對象的實例var obj = Object(1); obj instanceof Object // true obj instanceof Number // true var obj = Object("foo"); obj instanceof Object // true obj instanceof String // true3、如果參數是一個對象,則總是返回該對象,不用轉換
var arr = []; var obj = Object(arr); // 返回原數組 obj === arr // true var fn = function() {}; var obj = Object(fn); // 返回原函數 obj === fn // true // 一個判斷變量是否為對象的函數 function isObject(value) { return value === Object(value); } isObject([]) // true isObject(true) // falseObject構造函數
通過var obj = new Object()的寫法生成新對象,與字面量的寫法var obj = {}是等價的構造函數的用法與工具方法相同點
使用時,可以接受一個參數,如果該參數是一個對象,則直接返回這個對象,如果是一個原始類型的值,則返回該值對應的包裝對象
var o1 = {a: 1}; var o2 = new Object(o1); o1 === o1 // true var obj = new Object(123); obj instanceof Number // true構造函數的用法與工具方法不同點
Object(value)表示將value轉成一個對象
new Object(value)表示生成一個對象,它的值是value
部署在Object對象自身的方法 Object.keys()用來遍歷對象的屬性Object.keys方法的參數是一個對象,返回一個數組,該數組的成員都是該對象自身的所有屬性名,而不是繼承的屬性名
只返回可枚舉的屬性
var obj = { p1: 123, p2: 456, }; Object.keys(obj) // ["p1", "p2"]Object.getOwnPropertyNames()
用來遍歷對象的屬性接受一個對象作為參數,返回一個數組,包含了該對象自身的所有屬性名
還返回不可枚舉的屬性名
var obj = { p1: 123, p2: 456, }; Object.keys(obj) // ["p1", "p2"] var a = ["hello", "hi"]; Object.keys(a) // ["0", "1"] Object.getOwnPropertyNames(a) // ["0", "1", "length"]
可以用上面兩個方法提供計算對象屬性個數的方法
var obj = { p1: 1, p2: 2 }; Object.keys(obj).length // 2 Object.getOwnPropertyNames(obj).length // 2其他方法
對象屬性模型的相關方法
Object.getOwnPropertyDescriptor():獲取某個屬性的描述對象
Object.defineProperty():通過描述對象,定義某個屬性
Object.defineProperties():通過描述對象,定義多個屬性
控制對象狀態的方法
Object.preventExtensions():防止對象擴展
Object.isExtensible():判斷對象是否可擴展
Object.seal():禁止對象配置
Object.isSealed():判斷一個對象是否可配置
Object.freeze():凍結一個對象
Object.isFrozen():判斷一個對象是否被凍結
原型鏈相關方法
Object.create():該方法可以指定原型對象和屬性,返回一個新的對象Object的實例方法
Object.getPrototypeOf():獲取對象的Prototype對象
定義在Object.prototype對象,所有Object的實例對象都繼承了這些方法主要的Object實例對象的方法
Object.prototype.valueOf():返回當前對象對應的值
Object.prototype.toString():返回當前對象對應的字符串形式
Object.prototype.toLocaleString():返回當前對象對應的本地字符串形式
Object.prototype.hasOwnProperty():判斷某個屬性是否為當前對象自身的屬性,還是繼承自原型對象的屬性
Object.prototype.isPrototypeOf():判斷當前對象是否為另一個對象的原型
Object.prototype.propertyIsEnumerable():判斷某個屬性是否可枚舉
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/108031.html
摘要:等同于構造函數與的用法很相似,幾乎一模一樣。實例對象的方法接受一個字符串作為參數,返回一個布爾值,表示該實例對象自身是否具有該屬性。等同于方法生成的對象,繼承了它的原型對象的構造函數。 分類 Object() 函數 Object 本身是一個函數,用來將任意值轉為對象。 如果參數為空(或者為 undefined 和 null),Object() 返回一個空對象。 var obj = Ob...
摘要:控制對象狀態的方法防止對象擴展。判斷一個對象是否被凍結。返回當前對象對應的值。方法的作用是返回一個對象的字符串形式上面代碼表示,對于一個對象調用方法,會返回字符串用途通過自定義方法,可以讓對象在自動類型轉換時,得到想要的字符串形式。 概述Object()Object 構造函數Object 的靜態方法「本身的方法Object.keys(),Object.getOwnPropertyNam...
摘要:一對象初始化創建對象的兩種方法對象初始化器或對象字面量參數成對的名稱字符串與值任何值,其中名稱通過冒號與值分隔之后簡化了字面量寫法寫法以構造函數形式來調用參數任何值訪問對象屬性對象屬性可以用下標小圓點標記或者方括號標記訪問從開始,對象初始化 一、對象初始化 創建對象的兩種方法: 1.對象初始化器或對象字面量:{[nameValuePair1[, nameValuePair2[, ......
摘要:需要鏈接標準參考教程對象阮一峰標準構造器函數可能是最重要的對象之一,盡管我們從來不會直接調用它。該方法返回被凍結的對象。 Object 需要鏈接: MDN —— Object JavaScript標準參考教程(Object對象)——阮一峰 標準構造器函數Object可能是JavaScript最重要的對象之一,盡管我們從來不會直接調用它。每當使用一個對象直接量時,都會隱式調用它: ...
摘要:當以非構造函數形式被調用時,等同于。因此只有字符串會以數組形式,拷貝入目標對象,其他值即數值字符串和布爾值都不會產生效果。注意,布爾值數值字符串分別轉成對應的包裝對象時,它們的原始值都在包裝對象的內部屬性上面。擁有布爾值的字段的默認值都是。 Object Object構造函數創建一個對象包裝器。如果給定值是 null or undefined,將會創建并返回一個空對象,否則,將返回一個...
閱讀 671·2021-11-24 09:39
閱讀 2336·2021-11-22 13:54
閱讀 2207·2021-09-23 11:46
閱讀 3252·2019-08-30 15:55
閱讀 2687·2019-08-30 15:54
閱讀 2412·2019-08-30 14:18
閱讀 1552·2019-08-29 14:15
閱讀 2739·2019-08-29 13:49