[英]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.