new运算符
在JavaScript
中,new
是一个语法糖,可以简化代码的编写,可以批量创建对象实例。
语法糖Syntactic sugar
,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。
实例
假如我们不使用new
,来初始化创建10个student
对象实例
var stuGroup = [];
for(let i=0;i<10;++i){
var obj = {
name: i,hp: 100,mp: 1000,power: 100,defense: 100
}
stuGroup.push(obj);
}
console.log(stuGroup);
此时得到了10个初始化的student
对象实例,假如使用new
关键字可以简化操作,还可以使用原型链来共享属性等操作。
function Student(i){
this.name = i;
this.hp = 100;
this.mp = 1000;
this.power = 100,this.defense = 100;
}
Student.prototype.from = "sdust";
var stuGroup = [];
for(let i=0;i<10;++i){
stuGroup.push(new Student(i));
}
console.log(stuGroup);
new运算符的操作
function _new(base,...args){
var obj = {};
obj.__proto__ = base.prototype;
base.apply(obj,args);
return obj;
}
function Student(i){
this.name = i;
this.hp = 100;
this.mp = 1000;
this.power = 100,this.defense = 100;
}
Student.prototype.from = "sdust";
var stuGroup = [];
for(let i=0;i<10;++i){
stuGroup.push(_new(Student,i));
}
console.log(stuGroup);
相关
原型与原型链
https://github.com/WindrunnerMax/EveryDay/blob/master/JavaScript/%E5%8E%9F%E5%9E%8B%E4%B8%8E%E5%8E%9F%E5%9E%8B%E9%93%BE.md
apply、call、bind
https://github.com/WindrunnerMax/EveryDay/blob/master/JavaScript/apply%E3%80%81call%E3%80%81bind.md
原文链接:https://www.f2er.com/js/992928.html