什么是对象

原型链

1、普通对象和函数对象

在javascript中万物皆对象,对象分为普通对象和函数对象,可以通过typeof来判断对象是哪一种类型的对象。

1.1 普通对象

typeof obj === 'object'; // true

let obj1 = {};let obj2 = new Object();let obj3 = new Array();


console.log(typeof obj1); // object

console.log(typeof obj2); // object

console.log(typeof obj3); // object

1.2 函数对象

typeof obj === 'function'; // true

let f1 = new Function('a', 'b', 'return a + b');let f2 = function () {};function f3() {};


console.log(typeof f1); // function

console.log(typeof f2); // function

console.log(typeof f3); // function


console.log(typeof Function); // function

console.log(typeof Object); // function

console.log(typeof Array); // function


console.log(Function.constructor === Function); // true

console.log(Object.constructor === Function); // true

console.log(Array.constructor === Function); // true

注: 凡是通过new Function() 创建的对象都是函数对象,其他的都是普通对象。f1,f2,f3,实际上也是要通过 new Function()的方式进行创建。Function Object 也是通过 New Function()创建的。javascript大部分内置对象的构造器属于函数对象

Js中的对象可以分为三类:

1内置对象:列入数组,函数,日期

2宿主对象:即js解释器所嵌入的宿主环境(比如浏览器)定义的,列如HTMLElement等

3自定义对象:及程序员用代码定义的:对象的属性分为两类:

1自有属性:直接在对象中定义的属性

2继承属性:在对象的原型对象中定义是的属性

创建对象的两种方式:

1const obj = {a:1,b:2}

2 const obj = new Object();创建一个空对象,和{}一样

const obj = new Arary()创建一个空数组,和{}一样

const obj = new Date()创建一个表示当前时间的Date对象

你可能感兴趣的:(什么是对象)