国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - js中單例模式疑惑

瀏覽:98日期:2023-04-19 16:14:49

問題描述

以下代碼

function Universe() { // 緩存的實例 var instance = this; // 其它內(nèi)容 this.start_time = 0; this.bang = 'Big'; // 重寫構(gòu)造函數(shù) Universe = function () {return instance; };}// 測試var uni = new Universe();var uni2 = new Universe();uni.bang = '123';console.log(uni === uni2); // trueconsole.log(uni2.bang); // 123

點擊查看原文

問題:

new Universe()的過程是:var o = {};Universe.call(o);//這一步是將Universe中this對應(yīng)的屬性賦值給o;o.__proto__ = Universe.prototype;//將Universe原型上的方法賦值到o的__proto__屬性上;

那么 var instance = this;中,this是不是指的是不同的對象o?那么重寫構(gòu)造函數(shù)后,返回的instance不就是不同的對象嗎?為什么最后能相等

問題解答

回答1:

因為重寫了構(gòu)造函數(shù)后, 返回一個對象, 這個對象會覆蓋你 用new 構(gòu)造函數(shù)生成的那個對象,不知道我有沒有說清楚

回答2:

@mpccc 說的對。

如果構(gòu)造函數(shù)返回一個對象,那 new 出來的就是這個對象啦。

可以看看秘密花園中的構(gòu)造函數(shù)這一段

回答3:

我也是新手,嘗試解答一下,要是錯了可別怪我

第一 this是不是指的是不同的對象 在第一次調(diào)用構(gòu)造函數(shù)的時候 產(chǎn)生一個空的對象 并且函數(shù)內(nèi)部的this指向了這個空對象,接著執(zhí)行代碼,最后返回這個對象 也就是uni。

而在第二次調(diào)用的時候由于第一次函數(shù)的改寫,產(chǎn)生了一個閉包,這個閉包的內(nèi)部的instance正好指向了第一次調(diào)用時的產(chǎn)生的對象uni,當(dāng)?shù)诙螆?zhí)行new Universe()的時候你執(zhí)行的是一個閉包,也會產(chǎn)生一個空的對象,但那個對象并沒有用到它,反而是直接返回了閉包內(nèi)部的instance也就是uni。

所以uni2 === uni.

回答4:

偏個題,這樣寫單例模式有點多余,要創(chuàng)建唯一的對象不用非得造個構(gòu)造函數(shù)

var single = function(fn){ var instance; return function(){ return instance || (instance = fn .apply(this, arguments)); } }; 回答5:

不是注釋寫了嗎,重寫了構(gòu)造函數(shù)啊,你new了一次之后再new就沒有var instance = this;這行代碼了,instance自然就不變了

//簡單打印一下就知道了console.log(Universe)var uni = new Universe()console.log(Universe)回答6:

首次執(zhí)行new Universe()的時候,確實產(chǎn)生了一個新的this,并且將Universe構(gòu)造函數(shù)改寫了,之后再次調(diào)用這個new Universe()的時候,就只會return instance了,不會產(chǎn)生新的對象了。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 碰碰久久 | 国产精品观看在线亚洲人成网 | 久久久国产免费影院 | 看中国毛片 | 国产精品欧美亚洲韩国日本不卡 | 久久精品亚瑟全部免费观看 | 欧美一级欧美三级在线观看 | 亚洲精品亚洲人成人网 | 91精品国产综合久久青草 | 国产自在自线午夜精品视频在 | 欧美大片a一级毛片视频 | 91精品人成在线观看 | 国产精品亚洲二区 | 国产呦系列呦 | 91成人午夜在线精品 | 国产高清一级毛片在线不卡 | 美国三级毛片 | 国产综合第一页 | 黄色一级片网址 | 三级c欧美做人爱视频 | 国产主播精品福利19禁vip | 久久精品全国免费观看国产 | 99久久国产综合精品国 | 亚洲欧美在线视频 | 九九九热在线精品免费全部 | 国产乱码一区二区三区四 | 国产精品高清久久久久久久 | 国内精品a | 国产日产精品_国产精品毛片 | 欧美日韩性视频一区二区三区 | 一本色道久久综合亚洲精品加 | 亚洲超大尺度激情啪啪人体 | 最新最好看免费毛片基地 | 九九视频在线免费观看 | 美女视频黄视大全视频免费网址 | 男人好大好硬好爽免费视频 | 欧美激情欧美狂野欧美精品免费 | 自拍在线视频 | 国产成人综合久久精品红 | 欧美xxxx4khd超高清 | 亚洲精品美女国产一区 |