function
mynew
(func,
...args)
;// 新物件原型指向建構函式原型物件
obj.__proto__ = func.prototype;
// 將建構函式的this指向新物件
let result = func.
(obj, args)
;// 根據返回值判斷
return result instanceof
object
? result : obj;
}
使用
function
mynew
(func,
...args)
;// 新物件原型指向建構函式原型物件
obj.__proto__ = func.prototype;
// 將建構函式的this指向新物件
let result = func.
(obj, args)
;// 根據返回值判斷
return result instanceof
object
? result : obj;
}function
person
(name, age)
person.prototype.
sayname
=function()
let p =
mynew
(person,
'tom',18
);console.
log(p)---
>person
p.say()--
> tom
new關鍵字 this關鍵字 base關鍵字
使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...
new 關鍵字相關
初始化動態分配的陣列 動態分配陣列時,如果陣列元素具有類型別,將使用該類的預設建構函式 c primer第 2.3.4 節 實現初始化 如果陣列元素是內建型別,則無初始化 string psa new string 10 array of 10 empty strings int pia new i...
new 關鍵字的理解
當我們例項化乙個物件時,會遇到乙個有意思的問題 function person name this.name name var p new person zhangsan console.log p 建構函式並沒有返回值,為什麼可以將person例項化呢?這是因為new的原因。new關鍵字有兩個作用...