Object 和 Function 都是 JavaScript 自带的函数对象
在 JavaScript 中,万物皆对象,你要一个吗?new Object() 啊!
当然,就好比同样为人,也区分普通人和天才。
对象也是有分类的,分为 普通对象 和 函数对象。
而 Object 和 Function 都是 JavaScript 自带的函数对象。
function fun1() {};
const fun2 = function() {};
const fun3 = new Function();
const obj1 = {};
const obj2 = new Object();
const obj3 = new fun1();
console.log(typeof Object); // function
console.log(typeof Function); // function
console.log(typeof fun1); // function
console.log(typeof fun2); // function
console.log(typeof fun3); // function
console.log(typeof obj1); // object
console.log(typeof obj2); // object
console.log(typeof obj3); // object
在上面代码中,fun1、fun2、fun3 都是函数对象,obj1、obj2、obj3 都是普通对象。
原型对象
其中每个 函数对象 都有一个 prototype 属性,这个属性的指向被称为这个函数对象的 原型对象(简称原型)。
function Person() {};
Person.prototype.name = 'jsliang';
Person.prototype.sayName = function() {
console.log(this.name);
};
const person1 = new Person();
person1.sayName(); // jsliang
const person2 = new Person();
person2.sayName(); // jsliang
// 这两个实例对应的原型方法 sayName 都是一样的
console.log(person1.sayName === person2.sayName); // true