在昨天的文章有提到物件可以使用 .
來新增屬性,以下使用各種型別來新增屬性
物件新增屬性
const family = {};
family.name = 'weiwei';
console.log(family); // {name: 'weiwei'}
也許有人會問什麼是純值?
只要是原始型別就是純值
const newString = '小明';
newString.name = 'weiwei';
console.log(newString); // '小明'
console.log(newString.name); // undefined
在 JavaScript 中如果該屬性不存在時會回傳 undefined
,
因此從範例可以知道純值是無法新增屬性
const newString2 = new String('weiwei');
newString2.name = 'weiwei';
console.log(newString);
我們可以看到在 newString
中新增了 name
屬性,
而在純值範例中得知純值無法新增屬性,
因此可以得知建構式為物件型別
const arr = [1, 2, 3];
arr.name = 'weiwei';
console.log(arr);
範例中得知我們能夠在陣列中加入屬性,
因此得知陣列為物件型別,
當我們要取出 name
的值時,可以使用 arr.name
或 arr['name']
來取值
function callName() {
console.log('呼叫 weiwei');
};
console.log(callName);
console.log(typeof callName); // function
我們能看見單純使用 callName
只會看見函式內容,
無法看見內部屬性,而且函式型別為 function,
接著我們使用 console.dir()
來顯示 callName
function callName() {
console.log('呼叫 weiwei');
};
console.dir(callName);
此時我們能看見函式內部的屬性,
而函式內部的 name
屬性是無法被修改的,
該屬性的值表示函式名稱
當我們在函式中加入屬性時
function callName() {
console.log('呼叫 weiwei');
};
callName.wei = 'weiwei';
console.dir(callName);
我們可以看見在函式的屬性中新增 wei
的屬性,
因此可以得知函式也是物件
今天主要介紹純值跟物件的關係,
純值無法新增屬性,物件可以,
因此可以透過新增屬性的方式,
來了解一個值是純值還是物件,
以上就是今天的內容,感謝觀看!!