JavaScript函数new和this关键词理解(十三)

new关键词的使用:

一般用来做 new 一个函数,产生一个新的函数,用来构造一个构造函数模板,用new方式创建具体调用对象。

比如jquery中的 jQuery 就是new出来的,还有文本编辑器等,在页面引入js资源后,也会用new 来创建具体调用者。

用new一个函数以后,每个调用者在函数内部都会有一个自己的调用对象,在调用执行时,可通过this关键词来代指调用者的对象。

this关键词:

当前调用者的对象, 比如如果一个在全局作用域下 使用 this 就相当于window对象。

在函数内部使用this 就相当于函数内部的 调用者对象。但是如果在一个函数内使用  this对象。普普通调用函数时,函数内部变量值会共用,会造成数据污染。如果想每个调用者都保留自己的调用对象,则可用new函数的方式 来new一个对象。这样内部变量将互不影响。

示例,各自new一个对象,产生三个对象 ans、bns、MyFunction

// 函数定义,内部有个name函数(参数也相当于一个函数内部的局部变量)
var MyFunction = function(name){
  var _this = this;
  _this.name = name;
  console.log(_this.name+'好吃的油炸代码');
}
// new一个函数,调用者 this的对象name值是 张三说,独立对象
var ans = new MyFunction('张三说:');
// new一个函数,调用者 this的对象name值是 李四说, 独立对象
var bns = new MyFunction('李四说:');

结果展示:

情况1:对ans的name值变更观测 bns 对象的name值

// 对 ans 的内部变量name改变者,观测 bns 的name值是否变化,结果不变
ans.name = '张三的儿子说:'

结果展示:

情况2:对bns的name值变更观测ans对象的name值


// 对 bns 的内部变量name改变者,观测 ans的name值是否变化,结果不变
ans.name = '李四的的儿子说:';

结果展示:  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值