前端面试准备(new和instanceof)

new和instanceof的内部机制

new

代码例子

var Func=function(){
};
var func=new Func ();

new共经过4个阶段

1.创建一个空对象

var obj = new Object();

2.设置原型链

obj.__proto__=Func.prototype;

3.让Func中的this指向obj,并执行Func的函数体。

var result = Func.call(obj);

4.判断Func的返回值类型,如果是基本值类型,返回obj;如果是引用类型,就返回这个引用类型的对象。

if (typeof(result) == "object"){
  func=result;
}
else{
    func=obj;;
}

instanceof

猜你喜欢

转载自www.cnblogs.com/lhh520/p/10229678.html
今日推荐