偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一篇文章帶你了解JavaScript Object 對(duì)象

開發(fā) 前端
本文基于JavaScript基礎(chǔ),主要介紹Object 對(duì)象,常見(jiàn)的構(gòu)造函數(shù),Object 的實(shí)例方法,都通過(guò)案例的分析進(jìn)行詳細(xì)講解。通過(guò)運(yùn)行效果圖展示,能夠更好的幫助讀者去理解。

一、概念

JavaScript 原生提供Object對(duì)象(注意起首的O是大寫),介紹該對(duì)象原生的各種方法。JavaScript 的所有其他對(duì)象都繼承自O(shè)bject對(duì)象,即那些對(duì)象都是Object的實(shí)例。

二、Object()

Object本身是一個(gè)函數(shù),可以當(dāng)作工具方法使用,將任意值轉(zhuǎn)為對(duì)象。

這個(gè)方法常用于保證某個(gè)值一定是對(duì)象。如果參數(shù)為空(或者為undefined和null),Object()返回一個(gè)空對(duì)象。

  1. <html> 
  2.     <head> 
  3.         <title>JavaScript Animation</title> 
  4.         <script type="text/javascript"
  5.             var obj = Object(); 
  6.             // 等同于 
  7.             var obj = Object(undefined); 
  8.             var obj = Object(null); 
  9.             console.log(obj) // true 
  10. </script> 
  11.     </head> 
  12.     <body> 
  13.       <p id="dad"></p> 
  14.     </body> 
  15. </html> 

運(yùn)行效果:

參數(shù)是原始類型的值,Object方法將其轉(zhuǎn)為對(duì)應(yīng)的包裝對(duì)象。

  1. var obj = Object(1); 
  2. obj instanceof Object// true 

Object方法的參數(shù)是一個(gè)對(duì)象,它總是返回該對(duì)象,即不用轉(zhuǎn)換。

  1. <html> 
  2.     <head> 
  3.         <title>JavaScript Animation</title> 
  4.         <script type="text/javascript"
  5.             var obj = Object(1); 
  6.             obj instanceof Object  
  7.             console.log(obj) // true 
  8. </script> 
  9.     </head> 
  10.     <body> 
  11.        <p id="dad"></p> 
  12.     </body> 
  13. </html> 

利用這一點(diǎn),可以寫一個(gè)判斷變量是否為對(duì)象的函數(shù)。

  1. function isObject(value) {  
  2.   return value === Object(value); 
  3. isObject([]) // trueisObject(true) // false 

 

1. Object 構(gòu)造函數(shù)

Object構(gòu)造函數(shù)的首要用途,是直接通過(guò)它來(lái)生成新對(duì)象。

  1. var obj = new Object(); 

注:

通過(guò)var obj = new Object()的寫法生成新對(duì)象,與字面量的寫法var obj = {}是等價(jià)的?;蛘哒f(shuō),后者只是前者的一種簡(jiǎn)便寫法。

  1. var o1 = {a: 1}; 
  2. var o2 = new Object(o1);o1 === o2 // truevar obj = new Object(123);obj instanceof Number // true 

 

注:( 雖然用法相似,但是Object(value)與new Object(value)兩者的語(yǔ)義是不同的。)

Object(value)表示將value轉(zhuǎn)成一個(gè)對(duì)象,new Object(value)則表示新生成一個(gè)對(duì)象,它的值是value。

2. Object 的實(shí)例方法

除了靜態(tài)方法,還有不少方法定義在Object.prototype對(duì)象。它們稱為實(shí)例方法。

所有Object的實(shí)例對(duì)象都繼承了這些方法。

3.1 Object.prototype.valueOf()

valueOf方法的作用是返回一個(gè)對(duì)象的“值”,默認(rèn)情況下返回對(duì)象本身。

  1. var obj = new Object(); 
  2. obj.valueOf() === obj // true 

例1:

  1. var obj = new Object(); 
  2. 1 + obj // "1[object Object]" 

 

例2:

  1. var obj = new Object(); 
  2. obj.valueOf = function () {  return 2;}; 
  3. 1 + obj // 3 

 

代碼解析

自定義了obj對(duì)象的valueOf方法,于是1 + obj就得到了3。這種方法就相當(dāng)于用自定義的obj.valueOf,覆蓋Object.prototype.valueOf。

3.2 Object.prototype.toString()

toString方法的作用是返回一個(gè)對(duì)象的字符串形式,默認(rèn)情況下返回類型字符串。

  1. var o1 = new Object(); 
  2. o1.toString() // "[object Object]"var o2 = {a:1};o2.toString() // "[object Object]" 

 

通過(guò)自定義toString方法,可以讓對(duì)象在自動(dòng)類型轉(zhuǎn)換時(shí),得到想要的字符串形式。

  1. var obj = new Object(); 
  2. obj.toString = function () {  return 'hello';}; 
  3. obj + ' ' + 'world' // "hello world" 

 

上面代碼表示,當(dāng)對(duì)象用于字符串加法時(shí),會(huì)自動(dòng)調(diào)用toString方法。由于自定義了toString方法,所以返回字符串hello world。

數(shù)組、字符串、函數(shù)、Date 對(duì)象都分別部署了自定義的toString方法,覆蓋了Object.prototype.toString方法。

  1. [1, 2, 3].toString() // "1,2,3" 
  2. '123'.toString() // "123" 
  3. (function () { 
  4.   return 123; 
  5. }).toString() 
  6. // "function () { 
  7. //   return 123; 
  8. // }" 
  9. (new Date()).toString() 
  10. // "Tue May 10 2016 09:11:31 GMT+0800 (CST)" 

 

上面代碼中,數(shù)組、字符串、函數(shù)、Date 對(duì)象調(diào)用toString方法,并不會(huì)返回[object Object],因?yàn)樗鼈兌甲远x了toString方法,覆蓋原始方法。

3.3 Objct.prototype.toLocaleString()

Object.prototype.toLocaleString方法與toString的返回結(jié)果相同,也是返回一個(gè)值的字符串形式。

  1. var obj = {}; 
  2. obj.toString(obj) // "[object Object]" 
  3. obj.toLocaleString(obj) // "[object Object]" 

這個(gè)方法的主要作用是留出一個(gè)接口,讓各種不同的對(duì)象實(shí)現(xiàn)自己版本的toLocaleString,用來(lái)返回針對(duì)某些地域的特定的值。

  1. var person = { 
  2.   toString: function () { 
  3.     return 'Henry Norman Bethune'
  4.   }, 
  5.   toLocaleString: function () { 
  6.     return '白求恩'
  7.   } 
  8. }; 
  9. person.toString() // Henry Norman Bethune 
  10. person.toLocaleString() // 白求恩 

日期的實(shí)例對(duì)象的toString和toLocaleString返回值就不一樣,而且toLocaleString的返回值跟用戶設(shè)定的所在地域相關(guān)。

  1. var date = new Date();date.toString() // "Tue Jan 01 2018 12:01:33 GMT+0800 (CST)"date.toLocaleString() // "1/01/2018, 12:01:33 PM" 

 

三、總結(jié)

本文基于JavaScript基礎(chǔ),主要介紹Object 對(duì)象,常見(jiàn)的構(gòu)造函數(shù),Object 的實(shí)例方法,都通過(guò)案例的分析進(jìn)行詳細(xì)講解。通過(guò)運(yùn)行效果圖展示,能夠更好的幫助讀者去理解。

歡迎大家積極嘗試,有時(shí)候看到別人實(shí)現(xiàn)起來(lái)很簡(jiǎn)單,但是到自己動(dòng)手實(shí)現(xiàn)的時(shí)候,總會(huì)有各種各樣的問(wèn)題,切勿眼高手低,勤動(dòng)手,才可以理解的更加深刻。

代碼很簡(jiǎn)單,希望對(duì)你學(xué)習(xí)有幫助。

 

責(zé)任編輯:姜華 來(lái)源: 前端進(jìn)階學(xué)習(xí)交流
相關(guān)推薦

2024-09-02 14:07:05

2024-07-02 14:14:18

2020-10-22 09:08:34

JavaScript

2023-05-30 15:06:21

JavaScript屬性開發(fā)

2023-07-06 14:40:38

2023-07-25 16:06:57

JavaScript對(duì)象

2023-08-27 15:18:17

JavaScriptRegExp

2021-01-26 23:46:32

JavaScript數(shù)據(jù)結(jié)構(gòu)前端

2023-07-30 15:18:54

JavaScript屬性

2021-05-18 08:30:42

JavaScript 前端JavaScript時(shí)

2021-03-09 14:04:01

JavaScriptCookie數(shù)據(jù)

2024-04-19 14:23:52

SwitchJavaScript開發(fā)

2021-06-24 09:05:08

JavaScript日期前端

2021-03-05 18:04:15

JavaScript循環(huán)代碼

2024-01-30 13:47:45

2023-09-06 14:57:46

JavaScript編程語(yǔ)言

2020-11-10 10:48:10

JavaScript屬性對(duì)象

2021-01-29 18:41:16

JavaScript函數(shù)語(yǔ)法

2021-06-04 09:56:01

JavaScript 前端switch

2021-02-02 18:39:05

JavaScript
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)