簡單實現乙個new

2021-10-24 12:48:05 字數 519 閱讀 4052

// 實現乙個new操作符

function

mynew()

//測試

function

person

(name)

var p2 =

mynew

(person,

"小明");

console.

log(p2.name)

;

解釋:

1、let fn = .shift.call(arguments);

重點

slice內部實現是使用的this代表呼叫物件,那麼當.slice.call() 傳入 arguments物件的時候,通過 call函式改變原來 slice方法的this指向, 使其指向arguments,並對arguments進行複製操作,而後返回乙個新陣列。至此便是完成了arguments類陣列轉為陣列的目的!

其實這可以理解為,讓類陣列呼叫陣列的方法!

自己實現乙個new方法

好久沒有寫點東西了,最近看了下js基礎教程,覺得有些東西還是有必要記錄下來 new關鍵字通常和建構函式一起使用,用於建立物件。function animal name,action let animal1 newanimal tigger run let animal2 newanimal cat ...

用原生js實現乙個new?

js 還沒執行的時候,js 環境裡已經有乙個 window 物件了,window 物件有乙個 object 屬性,window.object 是乙個函式物件,window.object 這個函式物件有乙個重要屬性是 prototype,window.object.prototype 裡面有 tost...

實現乙個new操作符

new 操作符做了這些事 1.它建立了乙個全新的物件 2.它會被執行 prototype 也就是 proto 鏈結 3.它使this指向新建立的物件 4.通過new建立的每個物件最終被 prototype 鏈結到這個函式的prototype物件上 5.如果函式沒有返回物件型別object 包含fun...