欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解JS构造函数中this和return

程序员文章站 2022-09-08 13:57:02
先看一段代码, function foo(name,age){ this.name=name; this.age=age; } var foo=n...

先看一段代码,

function foo(name,age){
  this.name=name;
  this.age=age;
}
var foo=new foo("tom",14);
foo.name;//tom
foo.age;//14

使用构造函数实例化发生的流程:

1.建立一个foo的空对象。

2.将构造函数中的foo的this指向对象foo。

3.foo的_proto_属性指向foo函数的prototype原型。

4.执行构造函数中的代码。

相对于普通函数,构造函数中的this是指向实例的,而普通函数调用中的this是指向windows的。

构造函数中如果加入了return的话,分两种情况

function foo(name,age){
  this.name=name;
  this.age=age;
  return {name:"jeff"}
}
var foo=new foo("tom",14);
foo.name;//jeff

1.return的是五种简单数据类型:string,number,boolean,null,undefined。

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

2.return的是object。

 这种情况下,不再返回this对象,而是返回return语句的返回值。

总结

以上所述是小编给大家介绍的js构造函数中this和return,希望对大家有所帮助