1.在記憶體中建立乙個新物件
var obj =
;
2.把新物件的_ _ proto_ _屬性鏈結到建構函式的原型prototype屬性上
//fn 建構函式
obj.__proto__ = fn.prototype;
3.把建構函式內部的this指向新物件上並呼叫建構函式(給新物件新增屬性)
fn.call(obj)
4.如果建構函式返回的是非空物件(),則返回該物件;否則,返回剛建立的物件。
(返回的是引用型別就返回引用型別物件,沒有返回或者返回資料型別則返回新建立的物件)
下面是一些小例子,加深一下理解
function fn();
}var a = new fn(
);
console.log(a.user) //undefined
function fn();
}var a = new fn(
);
console.log(a.user)//undefined
function fn(
)var a = new fn(
);
console.log(a.user)
;//11
function fn(
)var a = new fn(
);
console.log(a.user)//11
關於Js中new操作符的作用詳解
前言 js是當今時代最常用的 操作語言,其中new操作符尤為常見。對於很多 小白來說,並不清楚new在js中扮演著怎樣的角色,具體是做什麼用,幹了什麼。本文從new操作符的作用著手,簡單介紹new操作符相關知識。什麼是new?眾所周知,在js中,new的作用是通過建構函式來建立乙個例項物件。像下面這...
JS中的new操作符
在js中定義乙個建構函式,然後用new操作符構造物件obj,js 如下。function base var obj new base console.log obj.name console.log obj.age new操作符具體都幹了什麼呢?其實很簡單,包括三步 1.var obj 2.obj....
js中的new操作符原理
舉乙個很常見的例子 function person name person.prototype.say function let p new person 花花 p.say 花花 為什麼會列印出 花花 為什麼建構函式中的 this 就指向了 物件?這就是 new 的原理起的作用 1 建立乙個類的例項...