JS中的new操作符

2022-07-01 11:21:10 字數 437 閱讀 1091

在js中定義乙個建構函式,然後用new操作符構造物件obj,js**如下。

function

base()

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...