成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript對(duì)象不完全探索記錄05:小伙子,你對(duì)象咋來(lái)的?下篇 - 啥樣的對(duì)象適合你

hlcfan / 2359人閱讀

摘要:溫馨提示作者的爬坑記錄,對(duì)你等大神完全沒(méi)有價(jià)值,別在我這浪費(fèi)生命溫馨提示續(xù)本文內(nèi)容簡(jiǎn)單,發(fā)揚(yáng)了潛入潛出的精神,請(qǐng)謹(jǐn)慎浪費(fèi)時(shí)間溫馨提示再續(xù)魔卡少女櫻動(dòng)畫(huà)再開(kāi)撒花經(jīng)過(guò)前兩篇文章的梳理對(duì)象不完全探索記錄小伙子,你對(duì)象咋來(lái)的上篇對(duì)象不完全探索記

溫馨提示:作者的爬坑記錄,對(duì)你等大神完全沒(méi)有價(jià)值,別在我這浪費(fèi)生命
溫馨提示-續(xù):本文內(nèi)容簡(jiǎn)單,發(fā)揚(yáng)了潛入潛出的精神,請(qǐng)謹(jǐn)慎浪費(fèi)時(shí)間
溫馨提示-再續(xù):《魔卡少女櫻》動(dòng)畫(huà)再開(kāi)!撒花

經(jīng)過(guò)前兩篇文章的梳理
javascript對(duì)象不完全探索記錄03:小伙子,你對(duì)象咋來(lái)的?上篇
javascript對(duì)象不完全探索記錄04:小伙子,你對(duì)象咋來(lái)的?中篇 - 現(xiàn)出你的原型!

大概對(duì)javascript中對(duì)象的基本創(chuàng)建方法有了了解,總結(jié)一下

1.字面量創(chuàng)建

var girlFriend = {};
girlFriend.name = "Sakura";
girlFriend.hairColor = "brown";

2.構(gòu)造函數(shù)法

function GirlFriend(name,hairColor){
    this.name = name;
    this.hairColor = hairColor
}
var sakura = new GirlFriend("Sakura","brown")

n.原型對(duì)象法(配合上面兩種使用)

function GirlFriend() = {};
GirlFriend.prototype.name = "Sakura";
GrilFriend.prototype.hairColor = "brown";
var sakura = new GirlFriend();

是不是有種,對(duì)象盡在我手中,可以為所欲為了的感覺(jué)?
年輕人,你太年輕了,你怎么就知道你的對(duì)象適合你呢?

舉個(gè)例子,我的對(duì)象是世界上唯一的Sakura醬(翼年代記什么的我不知道?。?br>我們可以通過(guò)字面量方式創(chuàng)建

var sakura = {
    name : "Kinomoto Sakura",
    age : 10,
    hairColor : "brown",
    job : "Cardcaptor",
    sayHello : function(yourName){
        alert("Ohayo! "+yourName)
    }
}

到此我們創(chuàng)建了一個(gè)名叫sakuraCardcaptor你能看到她頭發(fā)的顏色還可以和她打招呼

console.log(sakura.age);//10
sakura.sayHello("lskrat");//Ohayo! lskrat

goodjob!
我們都知道Sakura醬get的第一張卡(在動(dòng)畫(huà)中)是Wind,我們用同樣的方式創(chuàng)建一個(gè)新的對(duì)象

var wind = {
    type : "ClowCard",
    owner : sakura   
}

后來(lái)Sakura醬又收集到了第二張卡片F(xiàn)ly

var fly = {
    type : "ClowCard",
    owner : sakura   
}

再后來(lái),又收集到了Shadow,Water,Tree等等等等,發(fā)現(xiàn)問(wèn)題了吧,這些ClowCard除了名字不一樣,其實(shí)內(nèi)部屬性是完全一樣的,每次創(chuàng)建都是再重復(fù)剛才的工作,于是在這里,我們引入構(gòu)造函數(shù),來(lái)創(chuàng)建ClowCard

function ClowCard(name){
    this.name = name;
    this.type = "ClowCard";
    this.owner = sakura;
    this.showOwner = function(){
        return "Sakura"
    }
}
var wind = new ClowCard("Wind");
var fly = new ClowCard("Fly");

這樣寫倒是創(chuàng)造起來(lái)很快,但是還有兩個(gè)問(wèn)題
1.根據(jù)構(gòu)造函數(shù)創(chuàng)建對(duì)象的原理,實(shí)際上創(chuàng)建出來(lái)的對(duì)象中的屬性,和方法,都被重復(fù)的創(chuàng)建和儲(chǔ)存了,即便值是完全相同的,而這完全是沒(méi)有必要的
2.當(dāng)某些共有的屬性發(fā)生變化時(shí),需要一個(gè)個(gè)的改…,就像我們都知道的,ClowCard最終都變成了SakuraCard,我們是不是也要像Sakura醬那樣一張張的再攻略一遍呢……,而且ClowCard本身其實(shí)是Clow Read創(chuàng)造的

在這種情況下,我們就要用到上一篇文章中梳理的關(guān)于對(duì)象原型和原型鏈的相關(guān)知識(shí)了,我們改寫一下剛才的代碼

function Card(name){
    this.name = name;
    this.showOwner = function(){
        return this.name + "-" +this.owner + "-" +this.type
    }
}
Card.prototype.type = "ClowCard";
Card.prototype.owner = "Clow Read";
var wind = new Card("Wind");
var fly = new Card("Fly");
console.log(wind.showOwner());//Wind-Clow Read-ClowCard
console.log(fly.showOwner());//Fly-Clow Read-ClowCard

我們創(chuàng)造了Clow Read的ClowCard,這是Sakura將出現(xiàn)了,她要將ClowCard變成自己的SakuraCard

Card.prototype.type = "SakuraCard"
Card.prototype.owner = "Kinomoto Sakura";
console.log(wind.showOwner());//Wind-Kinomoto Sakura-SakuraCard
console.log(fly.showOwner());//Fly-Kinomoto Sakura-SakuraCard

這種將構(gòu)造函數(shù)與對(duì)象原型相結(jié)合的方式,生成的對(duì)象既有各自不同的屬性,又能從原型對(duì)象處得到公有的屬性和方法,適合于更多的情境下,同時(shí)還在一定程度上實(shí)現(xiàn)了繼承

這些都是最最初級(jí)的對(duì)象創(chuàng)建,掌握之后也就僅僅是會(huì)減少一些幼稚的錯(cuò)誤,以及對(duì)對(duì)象有一個(gè)基本的認(rèn)識(shí)
在javascript中對(duì)象是個(gè)深坑,關(guān)于繼承的實(shí)現(xiàn),以及ES5中Object的很多新方法…
mdmddn

看到這里的都是小櫻的真愛(ài)粉了
2017年最后一篇 - 新年快樂(lè)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/90479.html

相關(guān)文章

  • 從-1開(kāi)始的ES6探索之旅02:伙子,對(duì)象來(lái)的?續(xù)篇 - 對(duì)象班(class)里來(lái)的

    摘要:這是因?yàn)樽宇悰](méi)有自己的對(duì)象,而是繼承父類的對(duì)象,然后對(duì)其進(jìn)行加工。 溫馨提示:作者的爬坑記錄,對(duì)你等大神完全沒(méi)有價(jià)值,別在我這浪費(fèi)生命溫馨提示-續(xù):你們要非得看,我也攔不住,但是至少得準(zhǔn)備個(gè)支持ES6的Chrome瀏覽器吧?溫馨提示-再續(xù):ES6簡(jiǎn)直了,放著不用簡(jiǎn)直令人發(fā)指! 書(shū)接上回,即便是程序員,也還是能夠通過(guò)自己的努力辛辛苦苦找到合適對(duì)象的,見(jiàn)前文《javascript對(duì)象不完全...

    incredible 評(píng)論0 收藏0
  • javascript對(duì)象完全探索記錄03:伙子,對(duì)象來(lái)的?上篇

    摘要:看著別人寫的功能對(duì),就直接拿過(guò)來(lái)用,寫出來(lái)的代碼臃腫到爆炸,滿屏幕的的初級(jí)使用方式,運(yùn)氣好了能湊合跑起來(lái),出了問(wèn)題全臉懵逼,心中安慰自己一萬(wàn)遍我可是干設(shè)計(jì)的,但是既然打算好好整下就得從頭開(kāi)始看了。 溫馨提示:作者的爬坑記錄,對(duì)你等大神完全沒(méi)有價(jià)值,別在我這浪費(fèi)生命 首先,說(shuō)實(shí)話,我對(duì)不起javascript,作為一個(gè)接觸前端快10年的老前端(偽),一直發(fā)揚(yáng)的是不求甚解的拿來(lái)就用主義???..

    Pluser 評(píng)論0 收藏0
  • javascript對(duì)象完全探索記錄04:伙子對(duì)象來(lái)的?中篇 - 現(xiàn)出的原型!

    摘要:譯者注根據(jù)定義,沒(méi)有原型,并作為這個(gè)原型鏈中的最后一個(gè)環(huán)節(jié)。由于這個(gè)屬性不標(biāo)準(zhǔn),因此一般不提倡使用。中用函數(shù)獲得一個(gè)對(duì)象的。 溫馨提示:作者的爬坑記錄,對(duì)你等大神完全沒(méi)有價(jià)值,別在我這浪費(fèi)生命 在上一篇博文javascript對(duì)象不完全探索記錄03:小伙子,你對(duì)象咋來(lái)的?上篇,中大概說(shuō)了說(shuō)在js中,比較好理解的對(duì)象創(chuàng)建方式,分別是直接定義/字面量,和調(diào)用構(gòu)造函數(shù) 你對(duì)象還有原型? 在一...

    trigkit4 評(píng)論0 收藏0
  • 關(guān)于JavaScript函數(shù)柯里化問(wèn)題探索

    摘要:函數(shù)柯里化關(guān)于函數(shù)柯里化的問(wèn)題最初是在忍者秘籍中講閉包的部分中看到的,相信很多同學(xué)見(jiàn)過(guò)這樣一道和柯里化有關(guān)的面試題實(shí)現(xiàn)一個(gè)函數(shù),使得如下斷言能夠能夠通過(guò)簡(jiǎn)單說(shuō)就是實(shí)現(xiàn)一個(gè)求值函數(shù),能夠?qū)⑺袇?shù)相加得出結(jié)果。方法返回一個(gè)表示該對(duì)象的字符串。 函數(shù)柯里化 ??關(guān)于函數(shù)柯里化的問(wèn)題最初是在《JavaScript忍者秘籍》中講閉包的部分中看到的,相信很多同學(xué)見(jiàn)過(guò)這樣一道和柯里化有關(guān)的面試題:...

    vboy1010 評(píng)論0 收藏0
  • javascript閉包完全探索記錄01:閉包?啥餡的?

    摘要:閉包一詞來(lái)源于以下兩者的結(jié)合要執(zhí)行的代碼塊由于自由變量被包含在代碼塊中,這些自由變量以及它們引用的對(duì)象沒(méi)有被釋放和為自由變量提供綁定的計(jì)算環(huán)境作用域。在以及及以上等語(yǔ)言中都能找到對(duì)閉包不同程度的支持。 溫馨提示:作者的爬坑記錄,對(duì)你等大神完全沒(méi)有價(jià)值,別在我這浪費(fèi)生命 閉包,好吃嗎 ? 第一次聽(tīng)到這個(gè)詞,很不幸是在一次面試中,可想而知結(jié)果很細(xì)碎,從此閉包和跨域在我匱乏的前端知識(shí)中成為了...

    TANKING 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

hlcfan

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<