通过字面量创建对象
var num = 1;
var boo = true;
var str = "a";
var arr = [];
var obj = {};
var fn = function(){};
var reg = /\s/g;
那通过new创建对象,干了些啥呢
var arr = new Array();
// -----以下-----
let obj = {}
obj.__proto__ = Array.prototype // 1,绑定原型链
Array.call(obj) // 2,让作用域锁定在obj中
new对象比较低效,
1,因为本质上是调了一个内置的方法,new Student()
2,需要在原型链中遍历查找该方法,
3,执行的时候又还要涉及都堆栈的引用和释放
字面量就不存在这些问题
网友评论