Js的new运算符
2024-08-31 21:29:59
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运算符的操作
- 创建一个空的简单JavaScript对象(即{})
- 链接该对象(即设置该对象的构造函数)到另一个对象
- 将步骤1新创建的对象作为this的上下文
- 如果该函数没有返回对象,则返回this
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
最新文章
- mycat高可用方案
- PYTHON seek()tell()语句
- Java设计模式—生产者消费者模式(阻塞队列实现)
- 网页绘制图表 Google Charts with JavaScript #1....好强、好简单啊!
- P2P编程(十)
- 01_JavaMail_01_邮件服务器简述
- AeroGear.js 1.2.0 发布,手机Web应用脚手架 - 开源中国社区
- 《Linux设备驱动开发具体解释(第3版)》进展同步更新
- Android 它们的定义ContentProvider和ContentObserver充分利用
- 解决oracle数据库连接不上的问题
- setTimeout异步加载
- git 简易使用说明
- Java多线程其他
- EasyARM i.mx287学习笔记——通过modbus tcp控制GPIO
- sql复杂案例
- 海思编译链编译出现__aeabi_unwind_cpp_pr1重定义怎么回事
- 基本数据类型的包装类(Interger)
- mysql 8.0 ~ innodb与变量优化
- arm 算力运算
- android手机如何获取手机号