摘要:原型構造函數(shù)就是工廠,原型的實例就是工廠按照圖紙生成的工具比如汽車,原型鏈隱式的就是生成的工具所具有的功能,而功能是工具的屬性,生成什么樣的工具是由工廠構造函數(shù)決定的,圖紙是有工廠和客戶共同決定的原型構造函數(shù)工廠下面是原型的實例,注意,不一
原型(構造函數(shù))就是工廠,原型的實例就是工廠按照圖紙生成的工具(比如汽車),
原型鏈(隱式的)就是生成的工具所具有的功能,而功能是工具的屬性,
生成什么樣的工具是由工廠(構造函數(shù))決定的,圖紙是有工廠和客戶共同決定的
var carFactory =function(options){ //原型,構造函數(shù) (工廠) this.name = options.name; // this.color = options.color; this.run = function(){}; // this.stop = function(){}; //...... }
//下面是原型的實例,注意,不一定要new,carFactory({name:"法拉利",color:"orange"})本身就是一個實例,
//可以調(diào)用對應的屬性和方法如run()和stop()等,
//這里的new是一個繼承,相當于另外復制了一份,是為了重復利用該工廠,而不是只生產(chǎn)一輛車,專門為該車提供服務,
//關于繼承,可以參考:js繼承
var car = new carFactory({name:"法拉利",color:"orange"});//實例 car //{...}
//在chrome下,輸出一個對象,其中 __proto__即是原型鏈,是指該對象隱式的含有的一些功能,
//該功能由原型構造函數(shù)決定,而所有的原型的祖宗原型是Object,所以所有的對象都有Object的一些默認的屬性和方法,如:toString等
以下代碼加深理解
2..constructor=== Number // 2的構造者是Number Number.constructor ===Function//Number 的構造者是Function Function.constructor===Function //Function的構造者是 Function Math.constructor=== Object// Math的構造者是Object ({}).constructor===Object// {}的構造者是Object Object.constructor===Function //Object 的構造者是 Function
2..__proto__=== Number.prototype // 2的構造者是Number Number.__proto__===Function.prototype //Number 的構造者是Function Function.__proto__===Function.prototype //Function的構造者是 Function Math.__proto__=== Object.prototype // Math的構造者是Object ({}).__proto__===Object.prototype // {}的構造者是Object Object.__proto__===Function.prototype //Object 的構造者是 Function
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/91930.html
摘要:不理解沒關系,下面會結合圖例分析上一篇高級程序設計筆記創(chuàng)建對象下一篇高級程序設計筆記繼承參考之原型鏈的解讀三張圖搞懂的原型對象與原型鏈繼承與原型鏈 文章直接從原型圖解開始的,如果對一些概念不太清除,可以結合后面幾節(jié)查看 1. 圖解原型鏈 1.1 鐵三角關系(重點) function Person() {}; var p = new Person(); showImg(https://s...
摘要:數(shù)組的構造函數(shù)是原型鏈的指向與其他除以外的構造函數(shù)相同,的也指向頂級原型對象,每一個數(shù)組都是的實例,都指向。實例對象查找構造函數(shù)原型對象的方法一般會把對象共有的屬性和方法都放在構造函數(shù)的原型對象上。 showImg(https://segmentfault.com/img/remote/1460000018998704?w=900&h=506); 閱讀原文 概述 在 JavaScr...
摘要:原型對象內(nèi)部也有一個指針屬性指向構造函數(shù)實例可以訪問原型對象上定義的屬性和方法。在創(chuàng)建子類型的實例時,不能向超類型的構造函數(shù)中傳遞參數(shù)。 贊助我以寫出更好的文章,give me a cup of coffee? 2017最新最全前端面試題 私有變量和函數(shù) 在函數(shù)內(nèi)部定義的變量和函數(shù),如果不對外提供接口,外部是無法訪問到的,也就是該函數(shù)的私有的變量和函數(shù)。 function ...
摘要:對應的關系圖如下講解了構造函數(shù)和原型對象之間的關系,那么實例對象和原型對象之間的關系又是怎么樣的呢下面講解。原型對象的指向的是構造函數(shù)和本身沒有屬性,但是其原型對象有該屬性,因此也能獲取到構造函數(shù)。 JavaScript進階 - 1. 原型和原型鏈的概念 我們好多經(jīng)常會被問道JavaScript原型和原型鏈的概念,還有關于繼承,new操作符相關的概念。本文就專門整理了原型和原型鏈的概念...
摘要:綜上所述有原型鏈繼承,構造函數(shù)繼承經(jīng)典繼承,組合繼承,寄生繼承,寄生組合繼承五種方法,寄生組合式繼承,集寄生式繼承和組合繼承的優(yōu)點于一身是實現(xiàn)基于類型繼承的最有效方法。 一、前言 繼承是面向?qū)ο螅∣OP)語言中的一個最為人津津樂道的概念。許多面對對象(OOP)語言都支持兩種繼承方式::接口繼承 和 實現(xiàn)繼承 。 接口繼承只繼承方法簽名,而實現(xiàn)繼承則繼承實際的方法。由于js中方法沒有簽名...
摘要:每一個由構造函數(shù)創(chuàng)建的對象都會默認的連接到該神秘對象上。在構造方法中也具有類似的功能,因此也稱其為類實例與對象實例一般是指某一個構造函數(shù)創(chuàng)建出來的對象,我們稱為構造函數(shù)的實例實例就是對象。表示該原型是與什么構造函數(shù)聯(lián)系起來的。 本文您將看到以下內(nèi)容: 傳統(tǒng)構造函數(shù)的問題 一些相關概念 認識原型 構造、原型、實例三角結構圖 對象的原型鏈 函數(shù)的構造函數(shù)Function 一句話說明什么...
閱讀 3069·2021-09-28 09:43
閱讀 902·2021-09-08 09:35
閱讀 1441·2019-08-30 15:56
閱讀 1183·2019-08-30 13:00
閱讀 2732·2019-08-29 18:35
閱讀 1829·2019-08-29 14:07
閱讀 3432·2019-08-29 13:13
閱讀 1333·2019-08-29 12:40