摘要:對(duì)象所有對(duì)象都繼承它,同時(shí)它還是一個(gè)構(gòu)造函數(shù)。等等的應(yīng)用第二個(gè)參數(shù)就是該對(duì)象的構(gòu)造函數(shù)如果對(duì)象重寫了函數(shù)那就使用去搞,會(huì)發(fā)現(xiàn)大部分構(gòu)造函數(shù)都重寫了方法
1. Object對(duì)象:
所有對(duì)象都繼承它,同時(shí)它還是一個(gè)構(gòu)造函數(shù)。
2. 構(gòu)造函數(shù):所有構(gòu)造函數(shù)都有一個(gè)prototype屬性,指向原型對(duì)象。凡是定義在Object.prototype對(duì)象上面的屬性和方法,將被所有實(shí)例對(duì)象共享。
3. 原型對(duì)象: 4. 構(gòu)造函數(shù)的方法:Object.print1 = (o)=>{console.log(o);} const o = new Object({a:1}); Object.print1(o);// {a:1}5. 實(shí)例對(duì)象的方法:
Object.prototype.print2 = ()=>{// 這里使用了箭頭函數(shù),使得this指向了window console.log(this); } Object.prototype.print3 = function(){// 實(shí)例對(duì)象繼承原型的所有屬性和方法 console.log(this); } const o = new Object({a:1}); o.print2();// {} o.print3();// {a:1}6. 原始類型和包裝對(duì)象:三個(gè)包裝對(duì)象Number,String,Boolean
Object() // 返回一個(gè)空對(duì)象 Object() instanceof Object // true Object(undefined) // 返回一個(gè)空對(duì)象 Object(undefined) instanceof Object // true Object(null) // 返回一個(gè)空對(duì)象 Object(null) instanceof Object // true Object(1) // 等同于 new Number(1) Object(1) instanceof Object // true Object(1) instanceof Number // true Object("foo") // 等同于 new String("foo") Object("foo") instanceof Object // true Object("foo") instanceof String // true Object(true) // 等同于 new Boolean(true) Object(true) instanceof Object // true Object(true) instanceof Boolean // true7. 如果Object構(gòu)造函數(shù)的參數(shù)是一個(gè)對(duì)象,它總返回原對(duì)象
var arr = []; Object(arr) // 返回原數(shù)組 Object(arr) === arr // true var obj = {}; Object(obj) // 返回原對(duì)象 Object(obj) === obj // true var fn = function () {}; Object(fn) // 返回原函數(shù) Object(fn) === fn // true
利用它可以判斷變量是否為對(duì)象
function isObject(value) { return value === Object(value); } isObject([]) // true isObject(true) // false8. 靜態(tài)方法:
Object本身的方法,前面說的構(gòu)造函數(shù)的方法,就是靜態(tài)方法。此外還有好多,如Object.keys()等。
9. 實(shí)例方法:Object.protoType上的方法。如valueOf():返回當(dāng)前對(duì)象對(duì)應(yīng)的值。 toString():返回當(dāng)前對(duì)象對(duì)應(yīng)的字符串形式。 等等10. toString的應(yīng)用:
const a = {a:1}; console.log(a.toString());//[object Object] 第二個(gè)參數(shù)就是該對(duì)象的構(gòu)造函數(shù)
如果a對(duì)象重寫了toString函數(shù)
const a = { a: 1, toString: function() { return this; } }; console.log(a.toString());// { a: 1, toString: [Function: toString] }
那就使用Object.protoType.toString去搞,會(huì)發(fā)現(xiàn)大部分構(gòu)造函數(shù)都重寫了toString方法
const a = { a: 1, toString: function() { return this; } }; console.log(1,a.toString());// 1 { a: 1, toString: [Function: toString] } console.log(2,Object.prototype.toString.call(a));// 2 "[object Object]" const b = "bbb"; console.log(3,b.toString());// 3 "bbb" console.log(4,Object.prototype.toString.call(b));// 4 "[object String]" const c = 23; console.log(5,c.toString());// 5 "23" console.log(6,Object.prototype.toString.call(c));// 6 "[object Number]" const d = []; console.log(7,d.toString());// 7 "" console.log(8,Object.prototype.toString.call(d));// 8 "[object Array]" const e = () => { a: 1 }; console.log(9,e.toString());// 9 "() => { a: 1 }" console.log(10,Object.prototype.toString.call(e));// 10 "[object Function]" const f = true; console.log(11,f.toString());// 11 "true" console.log(12,Object.prototype.toString.call(f));// 12 "[object Boolean]"
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/84885.html
摘要:等同于構(gòu)造函數(shù)與的用法很相似,幾乎一模一樣。實(shí)例對(duì)象的方法接受一個(gè)字符串作為參數(shù),返回一個(gè)布爾值,表示該實(shí)例對(duì)象自身是否具有該屬性。等同于方法生成的對(duì)象,繼承了它的原型對(duì)象的構(gòu)造函數(shù)。 分類 Object() 函數(shù) Object 本身是一個(gè)函數(shù),用來將任意值轉(zhuǎn)為對(duì)象。 如果參數(shù)為空(或者為 undefined 和 null),Object() 返回一個(gè)空對(duì)象。 var obj = Ob...
摘要:控制對(duì)象狀態(tài)的方法防止對(duì)象擴(kuò)展。判斷一個(gè)對(duì)象是否被凍結(jié)。返回當(dāng)前對(duì)象對(duì)應(yīng)的值。方法的作用是返回一個(gè)對(duì)象的字符串形式上面代碼表示,對(duì)于一個(gè)對(duì)象調(diào)用方法,會(huì)返回字符串用途通過自定義方法,可以讓對(duì)象在自動(dòng)類型轉(zhuǎn)換時(shí),得到想要的字符串形式。 概述Object()Object 構(gòu)造函數(shù)Object 的靜態(tài)方法「本身的方法Object.keys(),Object.getOwnPropertyNam...
摘要:前言原生提供對(duì)象的所有其他對(duì)象都繼承自對(duì)象,即這些對(duì)象都是的實(shí)例對(duì)象的原生方法分為兩類本身的方法的實(shí)例方法對(duì)象本身的方法直接定義在對(duì)象的方法方法就是直接定義在對(duì)象上的實(shí)例方法定義在原型對(duì)象上的方法,可以被實(shí)例直接使用定義了一個(gè)方法,然后生成 前言 JavaScript原生提供Object對(duì)象 JavaScript的所有其他對(duì)象都繼承自O(shè)bject對(duì)象,即這些對(duì)象都是Object的實(shí)例...
摘要:一對(duì)象初始化創(chuàng)建對(duì)象的兩種方法對(duì)象初始化器或?qū)ο笞置媪繀?shù)成對(duì)的名稱字符串與值任何值,其中名稱通過冒號(hào)與值分隔之后簡化了字面量寫法寫法以構(gòu)造函數(shù)形式來調(diào)用參數(shù)任何值訪問對(duì)象屬性對(duì)象屬性可以用下標(biāo)小圓點(diǎn)標(biāo)記或者方括號(hào)標(biāo)記訪問從開始,對(duì)象初始化 一、對(duì)象初始化 創(chuàng)建對(duì)象的兩種方法: 1.對(duì)象初始化器或?qū)ο笞置媪浚簕[nameValuePair1[, nameValuePair2[, ......
摘要:需要鏈接標(biāo)準(zhǔn)參考教程對(duì)象阮一峰標(biāo)準(zhǔn)構(gòu)造器函數(shù)可能是最重要的對(duì)象之一,盡管我們從來不會(huì)直接調(diào)用它。該方法返回被凍結(jié)的對(duì)象。 Object 需要鏈接: MDN —— Object JavaScript標(biāo)準(zhǔn)參考教程(Object對(duì)象)——阮一峰 標(biāo)準(zhǔn)構(gòu)造器函數(shù)Object可能是JavaScript最重要的對(duì)象之一,盡管我們從來不會(huì)直接調(diào)用它。每當(dāng)使用一個(gè)對(duì)象直接量時(shí),都會(huì)隱式調(diào)用它: ...
摘要:當(dāng)以非構(gòu)造函數(shù)形式被調(diào)用時(shí),等同于。因此只有字符串會(huì)以數(shù)組形式,拷貝入目標(biāo)對(duì)象,其他值即數(shù)值字符串和布爾值都不會(huì)產(chǎn)生效果。注意,布爾值數(shù)值字符串分別轉(zhuǎn)成對(duì)應(yīng)的包裝對(duì)象時(shí),它們的原始值都在包裝對(duì)象的內(nèi)部屬性上面。擁有布爾值的字段的默認(rèn)值都是。 Object Object構(gòu)造函數(shù)創(chuàng)建一個(gè)對(duì)象包裝器。如果給定值是 null or undefined,將會(huì)創(chuàng)建并返回一個(gè)空對(duì)象,否則,將返回一個(gè)...
閱讀 387·2023-04-25 16:38
閱讀 1499·2021-09-26 09:46
閱讀 3346·2021-09-08 09:35
閱讀 2794·2019-08-30 12:54
閱讀 3264·2019-08-29 17:06
閱讀 1035·2019-08-29 14:06
閱讀 3358·2019-08-29 13:00
閱讀 3478·2019-08-28 17:53