js中 new,self和this的用法解释

一、对JS中new的理解

1.JavaScript 中new 的机制实际上和面向类的语言完全不同。

JavaScript 中的“构造函数”。在JavaScript 中,构造函数只是一些使用new 操作符时被调用的函数。它们并不会属于某个类,也不会实例化一个类。实际上,它们甚至都不能说是一种特殊的函数类型,它们只是被new 操作符调用的普通函数而已.

2.重要但是非常细微的区别:实际上并不存在所谓的“构造函数”,只有对于函数的“构造调用”。

使用new 来调用函数,或者说发生构造函数调用时,会自动执行下面的操作。
①创建(或者说构造)一个全新的对象。
② 这个新对象会被执行[[ 原型]] 连接。
③这个新对象会绑定到函数调用的this。
④ 如果函数没有返回其他对象,那么new 表达式中的函数调用会自动返回这个新对象。
例:

function foo(a)

{
       this.a = a;

}
var bar = new foo(2);
console.log( bar.a ); // 2

使用new 来调用foo(..) 时,我们会构造一个新对象并把它绑定到foo(..) 调用中的this上。

二、对JS中self、this的理解

每个函数在定义被ECMAScript解析器解析时,都会创建两个特殊的变量:this和arguments(每个函数都有属于自己的this对象)。

1.this的指向

this对象在运行时基于函数的执行环境进行绑定。例如,在全局对象中,this指向的是w

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值