用构造方法构建对象时使用new关键字和不使用new关键字的差别
来源:互联网 发布:mac os sierra dmg u盘 编辑:程序博客网 时间:2024/05/21 13:49
之前学习js的时候似乎没有发现用构造方法构建对象时使用new关键字和不使用new关键字会有差别,是不是我学习的时候太粗心了呀/该打,直到自己踩了坑才发现这个问题,为了避免更多人踩坑,我还是再给大家重新复习一遍吧。
当不用关键字new生成对象时调用的是普通方法,返回的始终是windows对象,也就是第一次生成的对象和第二次生成地址指向的是同一个.
如:
function objCreate(a,b){
this.a = a;
this.b = b;
return this;
}
let obj1 = objCreate(1,2);
let obj2 = objCreate(3,4);
console.log(obj1 === obj2);
console.log(obj1);
console.log(obj1.a,obj1.b);
console.log(obj2.a,obj1.b);
打印结果为:
true
windows
3 4
3 4
当使用关键字生成对象时生成的对象就不是同一个了。
代码如下:
function objCreate(a,b){
this.a = a;
this.b = b;
return this;
}
let obj1 = new objCreate(1,2);
let obj2 = new objCreate(3,4);
console.log(obj1 === obj2);
console.log(obj1);
console.log(obj1.a,obj1.b);
console.log(obj2.a,obj1.b);
打印结果:
false
objCreate
1 2
3 4
阅读全文
0 0
- 用构造方法构建对象时使用new关键字和不使用new关键字的差别
- C++使用new和不使用new关键字实例化对象的区别
- new关键字的使用
- scala不使用new关键字创建对象实例
- scala不使用new关键字创建对象实例
- c++ new 关键字的使用
- 构造器和new关键字
- 使用new关键字创建对象的三个作用
- 了解何时使用 Override 和 New 关键字
- new关键字和newInstance()方法的区别
- newInstance()方法和new关键字的区别
- new关键字和newInstance()方法的区别
- Javascript中实现不加new关键字的构造函数
- new Instance()方法和new 关键字的区别
- 继承父类使用关键字virtual和new的区别
- 构造方法和static关键字的使用
- C#中的new关键字的使用
- 关键字virtual,override,new的使用
- MySQL 存储过程 游标
- Qt之加密算法
- navicat premuim 12 链接 oracle 报错 28547
- arm-linux-gcc交叉编译器的安装与配置
- oracle启动(linux sunos aix HP-UX)
- 用构造方法构建对象时使用new关键字和不使用new关键字的差别
- Spark参数配置
- 程序即大脑的思考过程
- 4大技术巨头16年的传奇史
- sql执行顺序及性能优化
- JavaSE系列学习1.3-JavaSecurity(JCA)和密码学
- 【云周刊】第145期:2017天猫双11总交易额1682亿,背后阿里绝密50+技术揭秘!
- 类型特征萃取
- vuex在vue项目中的使用