JavaScript中的对象和普通对象之间有何不同?

时间:2018-09-22 04:09:22

标签: javascript redux javascript-objects

无法理解JavaScript中对象和普通对象之间的区别。

我知道对象的外观,但不了解普通对象。我在Google上搜索了一下,但听不懂。

据我了解,普通物体如下所示

  const object = {};

或者我们将函数作为JavaScript中的对象调用

function test(){

}

但是什么是普通物体?它与普通物体有何不同。谢谢

编辑:

看到以下错误后,我开始对普通对象感到困惑。所以我的查询是要了解JavaScript中普通对象的概念

动作必须是普通对象。使用自定义中间件执行异步操作。

7 个答案:

答案 0 :(得分:4)

普通对象(PO​​JO-普通的旧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

答案 1 :(得分:3)

我认为您想将 普通的旧JavaScript对象 表示为普通对象。

在普通JavaScript中,POJO(普通的旧JavaScript对象)是您可能拥有的最简单的对象类型:一组键值对,它们由{}对象文字符号创建或由{{1 }}。

普通的旧JavaScript对象:

使用括号的语法糖(也称为对象文字):

new Object()

使用Object()构造函数:

var obj = {};

非普通对象:

使用函数构造函数:

var obj = new Object();

使用ES6类语法:

var Obj = function(name) {
  this.name = name;
}
var c = new Obj("hello"); 

答案 2 :(得分:2)

通过文字符号或新对象创建的对象称为普通对象。例子:

let a = {aaa : 1}

let b = new Object()

使用函数创建的对象不是普通对象

let C = function(){}

let d = new C()

答案 3 :(得分:1)

在您的问题中,您引用一个对象文字和一个函数都是“对象”。在JS中,函数是一种类型,对象也是。因此,您最初的问题是,这两个项目不是对象...

enter image description here

答案 4 :(得分:1)

您正在谈论对象文字,它是文字对象{}。像数组文字一样,使用[]代替new Array()。这是一个原型为Object的对象。字符串也是对象,但其原型链如下所示:字符串->对象。数组是数组->对象。这些都是对象。

对象文字的原型就是对象。

答案 5 :(得分:1)

使用对象文字符号创建的任何对象在JavaScript中都称为纯对象

class myObject  {
  constructor(name) {
    this.name = name;
  }
}
var e = new myObject("hello");

答案 6 :(得分:0)

普通对象(包裹在 { } 中的键/值对集)非常适合存储简单的数据集。

var lunch={
    sandwich:'furkey',
    drink:'soda',
    chips:true
}

就像在 react redux 中,动作是以键/值对的形式编写的。

希望你能理解。