[英]The difference between object and plain object in JavaScript?
無法理解 JavaScript 中對象和普通對象之間的區別。
我知道 Object 的樣子,但不了解普通對象。 我用谷歌搜索了這個,但無法理解。
根據我的理解,正常對象如下所示
const object = {};
或者我們在 JavaScript 中將函數作為對象調用
function test() {
}
但什么是普通對象? 它與普通物體有何不同。 謝謝
編輯:
在查看以下錯誤后,我開始對普通對象感到困惑。 所以我的查詢是理解 JavaScript 中普通對象的概念
動作必須是普通對象。 使用自定義中間件進行異步操作。
我認為您想將普通舊 JavaScript 對象稱為普通對象。
在 vanilla JavaScript 中,POJO(Plain Old JavaScript Object)是您可能擁有的最簡單的對象類型:一組鍵值對,由{}
對象文字符號創建或使用new Object()
構造。
普通的舊 JavaScript 對象:
使用括號的語法糖,也稱為對象字面量:
var obj = {};
使用 Object() 構造函數:
var obj = new Object();
非普通對象:
使用函數構造函數:
var Obj = function(name) {
this.name = name;
}
var c = new Obj("hello");
使用 ES6 類語法:
class myObject {
constructor(name) {
this.name = name;
}
}
var e = new myObject("hello");
普通對象(POJO - 普通舊 Javascript 對象)
var plainObj1 = {}; // typeof plainObj1 --> Object
var plainObj2 = {name : "myName"}; // typeof plainObj2 --> Object
var plainObj3 = new Object(); // typeof plainObj3 --> Object
非普通對象
var Person = function(){}; //class
var nonPlainObj = new Person(); // typeof nonPlainObj --> function
通過文字符號或新對象創建的對象被稱為普通對象。 例子 :
let a = {aaa : 1}
let b = new Object()
而使用函數創建的對象不是普通對象
let C = function(){}
let d = new C()
您正在談論對象字面量,它是一個字面量對象{}
。 像數組文字一樣使用[]
而不是new Array()
。 這是一個原型為 Object 的對象。 字符串也是一個對象,但它的原型鏈看起來像:String -> Object。 數組是數組 -> 對象。 這些都是對象。
對象字面量的原型就是 Object。
任何使用對象文字符號創建的對象在 JavaScript 中都稱為普通對象
function Animal(){
//Some codes
}
Var obj = new Animal();`
普通對象(包裹在 { } 中的鍵/值對集)非常適合存儲簡單的數據集。
var lunch={
sandwich:'furkey',
drink:'soda',
chips:true
}
就像在 react redux 中,動作是以鍵/值對編寫的。
希望你明白。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.