JS 中 對象 基礎認識
- 2022 年 5 月 2 日
- 筆記
- javascript, JavaScript高級
俗話說:「萬物皆對象」,在 Javascript 中除了原始值幾乎所有的東西都可以看做對象:
- 布爾是對象( new 關鍵詞定義)
- 數字是對象( new 關鍵詞定義)
- 字元串是對象( new 關鍵詞定義)
- 日期永遠都是對象
- 算術永遠都是對象
- 正則表達式永遠都是對象
- 數組永遠都是對象
- 函數永遠都是對象
- 對象永遠都是對象
一、什麼是原始值
Javascript 中原始值是指沒有屬性和方法的值。
原始數據類型(擁有原始值的類型):
- string
- number
- boolean
- null
- undefined
二、什麼是對象
「萬物皆對象」,在 Java 中對象的定義:對象就是存在的具體實體,具有明確定義的狀態和行為,是面向對象編程的核心,用來描述現實世界中的實體,為電腦應用程式提供實體基礎,也是完成特定任務一個封裝。
Javascript 中的對象是包含變數的變數,但是對象能夠包含很多值。可以理解為:對象是屬性和方法的命名值得容器
var person = {firstName:"Coder", lastName:"Yarn", age:22, eyeColor:"black"};
對象命名值 即 對象屬性
屬性 | 值 |
---|---|
firstName | Coder |
lastName | Yarn |
age | 22 |
eyeColor | black |
對象方法:方法是可以在對象上執行的動作,即在對象身上發生的事件。
屬性 | 方法 |
fullName | function() {return this.firstName + ” ” + this.lastName;} |
三、對象的創建
創建對象主要三種方法:
- 對象字面量;
var person = { firstName:"Coder", lastName:"Yarn", age:22, eyeColor:"black", fullName:function() { return this.firstName + " " + this.lastName; }, };
- new object();
let person = new Object(); person.firstName = "Coder"; person.lastName = "Yarn"; person.age = 22; person.eyeColor = "black"; person.fullName = function() { return this.firstName + " " + this.lastName; };
- 自定義構造函數;
function Person(){ constructor(firstName,lastName,age,eyeColor){ this.firstName = firstName; this.lastName = lastName; this.age = age; this.eyeColor = eyeColor; }; this.fullName = function() { return this.firstName + " " + this.lastName; }; }; var person1 = new Person("Coder","Yarn",22,"black"); console.log(personl); console.log(person1.fullName()); //列印的結果 Coder Yarn 22 black Coder Yarn
注意:出於簡易性、可讀性和執行速度的考慮不會使用第二種方法(new Object()),而是使用第一種創建方法(對象字面量方法)。
在 ES5 中為了簡化程式碼,將對象共同擁有的屬性和方法都放在同一個函數中,這個函數就是我們自定義的構造函數,即 Java 中的類,然後可以通過 new 一個實例對象來使用這些屬性和方法,不過這種方法特別地浪費記憶體。 ES6 後幾乎都使用對象字面量方法來創建對象。