国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

五行代碼實現 JavaScript 中的 new 關鍵字

WelliJhon / 2341人閱讀

摘要:以這種方式調用構造函數實際上會經歷以下個步驟創建一個新對象將構造函數的作用域賦給新對象因此就指向了這個新對象執行構造函數中的代碼為這個新對象添加屬性返回新對象。

JS 高程中的解釋

要創建 Person 的新實例,必須使用 new 操作符。以這種方式調用構造函數實際上會經歷以下 4 個步驟:
(1) 創建一個新對象;
(2) 將構造函數的作用域賦給新對象(因此 this 就指向了這個新對象);
(3) 執行構造函數中的代碼(為這個新對象添加屬性);
(4) 返回新對象。

看了這個原理,想試著寫下實現過程,雖然不夠嚴謹。至少核心思想是體現出來了。

模擬實現:

// 先寫一個構造函數
function Person (name){
    this.name = name
}

// myNew 方法實現
function myNew(fn){
    let obj = Object.create(fn.prototype) // 創建一個對象,并將構造函數的原型對象賦給新創建的對象,即生成的實例與構造函數的原型對象關聯
    let res = fn.apply(obj, Array.prototype.slice.call(arguments, 1)) // 函數執行(為該對象賦屬性)
    return obj // 返回該對象
}
console.log(p1 instanceof Person) // true
console.log(myNew(Person, "Tom")) // Person{ "name":"Tom" }

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104052.html

相關文章

  • 初識python

    很早就聽說python的赫赫大名了,這學期學校也開了這門課,正好可以感受一下這門語言的魅力,對比C/C++/JAVA,它到底有什么獨特的地方呢? Life is short, you need Python --Bruce Eckel人生苦短,我用python 一. 初印象:short 曾經有這樣一個段子,說聯合國同樣一份檔案,用五大官方語言寫的不同版本中,最薄的那份一定是漢語的。 這個段子...

    gitmilk 評論0 收藏0
  • Java8新特性第1章(Lambda表達式)

    摘要:一表達式匿名內部類最大的問題在于其冗余的語法,比如前面的中五行代碼僅有一行是在執行任務??偨Y基于詞法作用域的理念,表達式不可以掩蓋任何其所在上下文的局部變量。 轉載請注明出處:https://zhuanlan.zhihu.com/p/20540175 在介紹Lambda表達式之前,我們先來看只有單個方法的Interface(通常我們稱之為回調接口): public interface...

    ningwang 評論0 收藏0
  • JS修仙之一界本源

    摘要:時間一晃就是數月,齊云早已把界基本情況了解了,不過至于三座大山里隱藏的謎團卻遲遲沒有頭緒。它是界本源之一。事實上,根本沒有構造函數,或者人人都是構造函數。所以,明白這個界的一界本源,才能在這里暢游天地之間。 自計算機宇宙誕生以來,有很多大神通者在這里開天辟地,開創了很多界,有C、C++、Java等世界,它們彼此相連,其中有一處叫做JavaScript的世界,自被開辟以來吸引了很多修行者...

    I_Am 評論0 收藏0
  • 100行代碼讓您學會JavaScript原生的Proxy設計模式

    摘要:面向對象設計里的設計模式之代理模式,相信很多朋友已經很熟悉了。代表當前執行方法的實例,即方法調用者。代表具體的方法名稱?,F在我們再次調用,傳入構造器返回的代理對象打印輸出,代理邏輯生效了和的一樣優雅地實現了代理設計模式。 showImg(https://segmentfault.com/img/remote/1460000016760603);面向對象設計里的設計模式之Proxy(代理...

    txgcwm 評論0 收藏0
  • JavaScript 編程精解 中文第三版 六、對象的秘密

    摘要:在編程文化中,我們有一個名為面向對象編程的東西,這是一組技術,使用對象和相關概念作為程序組織的中心原則。這是構造器函數的作用。因此,上面的類聲明等同于上一節中的構造器定義。 來源:ApacheCN『JavaScript 編程精解 中文第三版』翻譯項目原文:The Secret Life of Objects 譯者:飛龍 協議:CC BY-NC-SA 4.0 自豪地采用谷歌翻譯 部分參考...

    ddongjian0000 評論0 收藏0

發表評論

0條評論

WelliJhon

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<