摘要:我原來(lái)的寫(xiě)法都是這樣后來(lái)又看到另外一種復(fù)雜一點(diǎn)而且看起來(lái)好像沒(méi)有必要的寫(xiě)法這里的函數(shù)其實(shí)是一個(gè)制造類(lèi)的函數(shù),它返回了真正的類(lèi)。感覺(jué)這樣做的好處是更好的實(shí)現(xiàn)了封裝。
我原來(lái)的寫(xiě)法都是這樣:
function Dog(){ this.name = "hachi"; } Dog.prototype = { makeNoise:function(){ alert("wangwangwang"); } };
后來(lái)又看到另外一種復(fù)雜一點(diǎn)而且看起來(lái)好像沒(méi)有必要的寫(xiě)法:
function Dog(){ var privateVariable = "secret"; var fn = function(){ //... } fn.prototype = { makeNoise:function(){ alert("wangwangwang"); } } return fn; }
這里的Dog函數(shù)其實(shí)是一個(gè) 制造類(lèi) 的函數(shù),它返回了真正的Dog類(lèi)。
感覺(jué)這樣做的好處是更好的實(shí)現(xiàn)了封裝。
例如這里的privateVariable就是一個(gè)私有變量:
var d = new Dog; d.privateVariable //undefined
另外如果在第一個(gè)例子的最后加上一句:
Dog.prototype = { //e...WTF?? }
這樣Dog就不是Dog了~
后來(lái)的理解:
上面這樣新建類(lèi)的方法直接重寫(xiě)了prototype對(duì)象。這樣prototype原本內(nèi)置的屬性就沒(méi)有了(arguments, call, apply等)。
下面這種新建類(lèi)的方法好像更好一些:
var Dog = function(name){ this.name = name; var privateVariable = "you cannot see me."; this.getPrivate = function(){return privateVariable;}; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/87535.html
摘要:餅狀圖將數(shù)據(jù)用切割成份的圓來(lái)展示。至于半徑,我們用寬度的一半與高度的一半的較小值,因?yàn)槲覀儾幌胱岋灎顖D超出。結(jié)果看起來(lái)如下這樣繪制圓環(huán)圖我們已經(jīng)看到如何創(chuàng)建餅狀圖。怎樣畫(huà)洞呢我們可以畫(huà)一個(gè)白色的圓在餅狀圖上。 showImg(https://segmentfault.com/img/bVObDh?w=850&h=362); 原文:https://code.tutsplus.com/zh...
摘要:若你想在諸如元素的組件上應(yīng)用高級(jí)樣式或者想定制組件的行為,你就只能選擇創(chuàng)建自己的表單組件。我們將通過(guò)本文學(xué)習(xí)如何構(gòu)建一個(gè)表單組件。 系列文章說(shuō)明 原文 在許多情況下,[可用的HTML表單組件]()是不夠的。若你想在諸如元素的組件上[應(yīng)用高級(jí)樣式]()、或者想定制組件的行為,你就只能選擇創(chuàng)建自己的表單組件。 我們將通過(guò)本文學(xué)習(xí)如何構(gòu)建一個(gè)表單組件。為達(dá)到目的,我們選擇重構(gòu)元素作為例子...
摘要:若你想在諸如元素的組件上應(yīng)用高級(jí)樣式或者想定制組件的行為,你就只能選擇創(chuàng)建自己的表單組件。我們將通過(guò)本文學(xué)習(xí)如何構(gòu)建一個(gè)表單組件。 系列文章說(shuō)明 原文 在許多情況下,[可用的HTML表單組件]()是不夠的。若你想在諸如元素的組件上[應(yīng)用高級(jí)樣式]()、或者想定制組件的行為,你就只能選擇創(chuàng)建自己的表單組件。 我們將通過(guò)本文學(xué)習(xí)如何構(gòu)建一個(gè)表單組件。為達(dá)到目的,我們選擇重構(gòu)元素作為例子...
摘要:若你想在諸如元素的組件上應(yīng)用高級(jí)樣式或者想定制組件的行為,你就只能選擇創(chuàng)建自己的表單組件。我們將通過(guò)本文學(xué)習(xí)如何構(gòu)建一個(gè)表單組件。 系列文章說(shuō)明 原文 在許多情況下,[可用的HTML表單組件]()是不夠的。若你想在諸如元素的組件上[應(yīng)用高級(jí)樣式]()、或者想定制組件的行為,你就只能選擇創(chuàng)建自己的表單組件。 我們將通過(guò)本文學(xué)習(xí)如何構(gòu)建一個(gè)表單組件。為達(dá)到目的,我們選擇重構(gòu)元素作為例子...
閱讀 925·2021-11-25 09:43
閱讀 1301·2021-11-17 09:33
閱讀 3026·2019-08-30 15:44
閱讀 3317·2019-08-29 17:16
閱讀 486·2019-08-28 18:20
閱讀 1645·2019-08-26 13:54
閱讀 558·2019-08-26 12:14
閱讀 2180·2019-08-26 12:14