var n = new Number(1);
var s = new String('hi');
var b = new Boolean(true);
var o = new Object();

111111
因为每个地址里都会存在toString 和 valueOf
这样会造成内存浪费
所以要使用 Object公用属性 来节省空间
图片描述

var o1 = new Object();

原型(共有属性)

语法:
var 对象 = new 函数();
对象.__proto__ === 函数.prototype
var obj = 函数.prototype
函数.prototype.__proto__ === object.prototype

//Obiect 的共有属性是 Object.prototype
var o1 = {};
o1.__proto__ === Object.prototype; //true

//Number 的共有属性是 Object.prototype
var n1 = new.Number(1);
n1.__proto__ === Number.prototype; //true
n1.__proto__.__proto__ === Object.prototype //true

//String 的共有属性
var s1 === new String('1');
s1.__proto__ ===  String.prototype; //true
s1.__proto__.__proto__ ===  Object.prototype; //true

//Boolean 的共有属性
var b1 = new Boolean(true);
b1.__proto__ ===  Boolean.prototype; //true
b1.__proto__.__proto__ ===  Boolean.prototype; //true
proto 和 prototype 的区别是什么?

proto 是对象的属性
prototype 是函数的属性

无代码状态 浏览器会先把代码初始好
String.prototype 是 String 的共用属性的引用
s.__proto__ 是 string 的共用属性的引用

图片描述



Tong_sunshine
62 声望10 粉丝

看看看! 再看把你眼珠子抠掉!