使用隐藏的new来创建对象
使用 隐藏 New 创建对象
2023-06-13 09:14:27 时间
很多时候我们是这样写类,然后使用new创建对象的。
复制代码代码如下:
functionPerson(name,age){
this.name=name;
this.age=age;
}
Person.prototype={
setName:function(n){this.name=n;},
getName:function(){returnthis.name;}
}
varp=newPerson("jack",25);
改成这样的
functionPerson(name,age){
//条件改为(this==window)或(this==self)或(this.constructor!=Object)
if(!this.setName){
returnnewPerson(name,age);
}
this.name=name;
this.age=age;
}
Person.prototype={
setName:function(n){this.name=n;},
getName:function(){returnthis.name;}
}
varp=Person("jack",25);
注意该类较最上面的写类方式中多了以下
if(!this.setName){
returnnewPerson(name,age);
}
好,创建类的实例(对象)方式也变成了如下
varp=Person("jack",25);
这种创建方式(函数调用)较上面的少了“new_”,new和空格,实际上是在类内部new了。而这样方式每次创建对象可以减少4个byte。
如果把类内部的if判断条件换成非prototype上的属性,如this.name。程序会提示出错:toomuchrecursion
functionPerson(name,age){
if(!this.name){
returnnewPerson(name,age);
}
this.name=name;
this.age=age;
}
Person.prototype={
setName:function(n){this.name=n;},
getName:function(){returnthis.name;}
}
varp=Person("jack",25);
相关文章
- ChatGPT接入个人微信(国内也能正常使用)
- 如何使用MrKaplan在红队活动中隐藏和清理代码执行痕迹
- 【CSS】文字溢出问题 ( 强制文本在一行中显示 | 隐藏文本的超出部分 | 使用省略号代替文本超出部分 )
- 使用隐藏框架加载远程JS脚本(调用远程函数)
- 使用 Linux 快速部署虚拟机(linux部署虚拟机)
- Linux下K3B烧录软件的使用(linuxk3b)
- 使用Oracle统计视图优化系统性能(oracle统计视图)
- 使用 Linux 实现内网映射到外网的配置方法(linux内网映射外网)
- 深入使用Linux系统,开启全新的体验之旅(linux体验)
- SQL Server非法使用:严重后果隐藏其中(sqlserver非正版)
- 使用SQL Server技术实现表的隐藏(sqlserver表隐藏)
- 纯洁使用Redis轻松缓解系统负载(纯redis)
- 数据库Oracle命令行下连接数据库一个简单的操作(oracle使用命令连接)
- Reddit用户发现CSAM检测中使用的苹果NeuralHash算法隐藏在iOS 14.3中
- 使用脚本控制网页Table的显示隐藏(全代码)_AX
- androidUI进阶之android中隐藏的layout抽屉的使用方法
- c#使用热键实现程序窗口隐藏示例
- XAMPP下使用顶级域名绑定虚拟主机的配置方法和示例