在js中定義乙個建構函式,然後用new操作符構造物件obj,js**如下。
functionbase()
var obj = new
base();
console.log(obj.name);
console.log(obj.age);
new操作符具體都幹了什麼呢?其實很簡單,包括三步:
1. var obj ={};2. obj.__proto__ =base.prototype;
3. base.call(obj);
第一步,建立乙個空物件;
第二步,將這個空物件的__proto__成員指向建構函式物件的prototype成員;
第三步,將建構函式物件的this指標換成obj,即在obj的作用域中呼叫base函式。
js 中 new操作符的作用
1.在記憶體中建立乙個新物件 var obj 2.把新物件的 proto 屬性鏈結到建構函式的原型prototype屬性上 fn 建構函式 obj.proto fn.prototype 3.把建構函式內部的this指向新物件上並呼叫建構函式 給新物件新增屬性 fn.call obj 4.如果建構函式...
js中的new操作符原理
舉乙個很常見的例子 function person name person.prototype.say function let p new person 花花 p.say 花花 為什麼會列印出 花花 為什麼建構函式中的 this 就指向了 物件?這就是 new 的原理起的作用 1 建立乙個類的例項...
js 實現new操作符
new操作符做了什麼 建立乙個空的物件,即 空物件的原型指向建構函式的原型,即設定該物件的建構函式 讓this指向新建立的空物件,即新建立的物件作為this的上下文 判斷返回值的型別,如果是值型別就是返回新的建立物件,如果是引用型別就返回引用型別的物件。如果沒有返回物件型別object包括funct...