1. 程式人生 > >前端面試準備(new和instanceof)

前端面試準備(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