javascript中的new关键字做了什么?

时间: 作者:admin 浏览:

new 关键字

//比如我们创建了一个新函数:
function getName(){

}
//当我们执行:
new getName();

//上面这句话到底做了些什么?

//第1、创建了一个空对象,相当于:
var obj={};

//第2、将这个空对象的__proto__成员指向了getName函数对象prototype成员对象,相当于:

obj.__proto__ = getName.prototype;

//第3、将getName函数对象的this指针替换成obj,相当于:

 getName.call(obj); 

//对于第3点我们来举个例子:

//比如我们创建了一个函数:

function Base(){
   console.log(this);
}

//如果我们不用new关键字,而是直接执行Base();那么这里的this将会是window:

Base();//window

//但是如果我们用了new关键字,this就会变成了Base本身;

new Base();//Base
微信公众号
微信公众号:
  • 前端全栈之路(微信群)
前端QQ交流群
前端QQ交流群:
  • 794324979
  • 734802480(已满)

更多文章

栏目文章


Copyright © 2014-2023 seozhijia.net 版权所有-粤ICP备13087626号-4