this、return、new关键字的简单理解

this、return、new关键字的个人理解

new关键字

用new操作符创建对象时发生的事情:

(1)创建一个新对象;

(2)将构造函数的作用域赋给新对象(因此this就指向了这个新对象);

(3)执行构造函数中的代码(为这个新对象添加属性和方法);

(4)返回新对象;

通过new操作符后跟构造函数的方式创建的对象(实例),这个对象有一个constructor(构造函数)属性,该属性指向构造函数。

注意:原本的构造函数是window对象的方法,如果不用new操作符而直接调用,那么构造函数的执行对象就 是window,即this指向了window。现在用new操作符后,this就指向了新生成的对象。

①.new能让一个构造函数返回一个新对象而无需return

②.new会让函数体内的this指向这个新对象

③.new会让新对象的原型指向这个构造函数的prototype属性

构造函数也是函数

任何函数,只要通过new操作符来调用,那么它就可以作为构造函数;任何函数,如果不通过new操作符来调用,那它与普通函数并无区别。

(1)当做构造函数调用

var person = new Person("张三",18);

(2)当做普通函数使用

Person("张三",20);    //添加到window对象
console.log(window.name);    //"张三"
console.log(window.age);    //20

构造函数的问题

使用构造函数的主要问题,就是每个方法都要在每个实例上重新创建一次。

return

return,从字面意思来看就是返回,官方定义return语句将终止当前函数并返回当前函数的值;

①.return的是五种简单数据类型:String,Number,Boolean,Null,Undefined。

这种情况下,忽视return值,依然返回this对象。

②.return的是Object。

这种情况下,不再返回this对象,而是返回return

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值