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