国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Bind進(jìn)階

doodlewind / 1472人閱讀

摘要:子域授權(quán)比如我的一臺(tái)服務(wù)器負(fù)責(zé)的權(quán)威域名解析,它再授權(quán)服務(wù)器對(duì)的子域名進(jìn)行解析,這就叫做子域授權(quán)。之后,通過(guò)自己的會(huì)話密鑰將要發(fā)送的明文進(jìn)行加密,發(fā)送給,通過(guò)事先得到的會(huì)話密鑰對(duì)發(fā)送過(guò)來(lái)的密文進(jìn)行解密從而得到明文。

還是出于項(xiàng)目的需要,把Bind比較高級(jí)的功能做一個(gè)梳理,這其中包含:DNS遞歸迭代查詢、DNS子域授權(quán)、DNS轉(zhuǎn)發(fā)、DNS主從區(qū)域傳輸、DNS數(shù)據(jù)加密,每一個(gè)內(nèi)容不僅記錄了它的實(shí)現(xiàn)原理,也相應(yīng)的配上了我一行一行代碼的實(shí)踐測(cè)試及結(jié)果。

所有的測(cè)試都是基于我原來(lái)的文章:Bind服務(wù)搭建及測(cè)試上的代碼來(lái)進(jìn)行的,所以下面的代碼如果有不理解的,請(qǐng)去看看我之前寫(xiě)的文章。

DNS遞歸迭代查詢

為什么要把DNS的查詢稱之為遞歸迭代查詢:

遞歸是因?yàn)椋?/p>

用戶端向我的服務(wù)端發(fā)起一次查詢請(qǐng)求,那么服務(wù)端如果有結(jié)果就返回,如果沒(méi)有結(jié)果就像上一級(jí)服務(wù)器再發(fā)一次請(qǐng)求,直到找到用戶需要的IP或者域名,這個(gè)過(guò)程可以稱之為遞歸。

迭代是因?yàn)椋?/p>

當(dāng)服務(wù)端向上一級(jí)服務(wù)器法請(qǐng)求的時(shí)候,它并不是一次請(qǐng)求就結(jié)束了,先是根域,再是二級(jí)域名這樣了,有多次的請(qǐng)求跟返回動(dòng)作,這個(gè)過(guò)程可以稱之為迭代。

我在Bind搭建及測(cè)試這篇博文里面,對(duì)它們的流程做了更詳細(xì)的敘述,這里就不多寫(xiě)了。

參數(shù)

Bind既然有一個(gè)復(fù)雜的查詢流程,那么與之相對(duì)應(yīng)的就會(huì)有一系列的配置項(xiàng)來(lái)控制這個(gè)流程。下面講的參數(shù)都是基于Bind的主配置文件named.conf。

recursion : {yes|no} 是否允許遞歸請(qǐng)求

allow-recursion : {address_match_list|any|none} 允許遞歸請(qǐng)求的范圍

recursion-clients : {number(填數(shù)字)} 客戶端執(zhí)行遞歸請(qǐng)求的數(shù)量

測(cè)試

named.conf配置文件的內(nèi)容如下所示:

options {
    directory "/var/named";
    recursion yes;
};

zone "." {
    type hint;
    file "named.ca";
};

zone "liumapp.com" {
    type master;
    file "liumapp.com.zone";
};

zone "cnametest.com" {
    type master;
    file "cnametest.com.zone";
};

zone "32.29.115.in-addr.arpa" {
    type master;
    file "115.29.32.zone";
};

可以看到,我默認(rèn)是把遞歸查詢開(kāi)啟的

開(kāi)啟遞歸的情況

隨便查詢一個(gè)域名,比如“www.qqq.com”

可以發(fā)現(xiàn),Bind為了找到www.qqq.com對(duì)應(yīng)的IP地址,往上層域名服務(wù)器迭代了7次才找到最終結(jié)果。

關(guān)閉遞歸的情況

現(xiàn)在我們將配置文件的recursion改為no,重啟Bind之后再查詢一個(gè)新的域名,比如"www.qqqq.com"(www.qqq.com已經(jīng)做了緩存)

可以看到,關(guān)閉遞歸后我們是查不到新域名的解析記錄的。

DNS子域授權(quán)

在DNS迭代查詢的情況下,經(jīng)常會(huì)用到NS記錄,同樣的,在DNS子域授權(quán)下面,NS記錄也會(huì)經(jīng)常被用到。

子域授權(quán):

比如我的一臺(tái)服務(wù)器A負(fù)責(zé)liumapp.com的權(quán)威域名解析,它再授權(quán)服務(wù)器B對(duì)liumapp.com的子域名:child.liumapp.com進(jìn)行解析,這就叫做子域授權(quán)。

DNS迭代查詢利用的就是子域授權(quán):通過(guò)根域,到二級(jí)域再依次往下迭代查詢。

測(cè)試

我的父服務(wù)器IP為115.29.32.62,其解析的域名為www.liumapp.com,子服務(wù)器IP為106.14.212.41,其解析的域名為www.test.liumapp.com

首先在父服務(wù)器上,我們要對(duì)子服務(wù)器進(jìn)行授權(quán),具體配置liumapp.com.zone文件,添加如下內(nèi)容:

test.liumapp.com. IN NS ns1.test
ns1.test IN A 106.14.212.41

大意就是給liumapp.com的子域名test.liumapp.com分配權(quán)限給ns1.test,然后指定ns1.test的IP為106.14.212.41

重啟父服務(wù)器,然后進(jìn)入子服務(wù)器的shell命令面板

首先我們對(duì)named.conf做一個(gè)備份,然后把它的內(nèi)容修改為:

options {
  directory "/var/named";
};

zone "test.liumapp.com" {
    type master;
    file "test.liumapp.com.zone";
};

然后在/var/named/目錄下添加一個(gè)test.liumapp.com.zone文件,其內(nèi)容為:

$TTL 7200
@ IN SOA test.liumapp.com. liumapp.com.gmail.com. (222 1H 15M 1W 1D)
@ IN NS dns1.liumapp.com.
dns1.liumapp.com. IN A 106.14.212.41
www.test.liumapp.com. IN A 106.14.212.42

接下來(lái)重啟Bind。
然后我們進(jìn)行測(cè)試,首先對(duì)父服務(wù)器進(jìn)行解析:

dig @115.29.32.62 www.test.liumapp.com

結(jié)果為:

然后我們對(duì)子服務(wù)器進(jìn)行解析:

dig @106.14.212.41 www.test.liumapp.com

結(jié)果為:

DNS轉(zhuǎn)發(fā) 概念

假設(shè)有一個(gè)局域網(wǎng),內(nèi)部有兩臺(tái)DNS服務(wù)器,命名為A和B,局域網(wǎng)通過(guò)防火墻對(duì)外開(kāi)放,但是只有A能夠直接對(duì)外提供DNS解析服務(wù),B只能在局域網(wǎng)內(nèi)的內(nèi)網(wǎng)進(jìn)行訪問(wèn),那當(dāng)需要用到B的DNS解析的時(shí)候,就是通過(guò)A的forwarding轉(zhuǎn)發(fā)來(lái)實(shí)現(xiàn)。

配置

首先看一下關(guān)于轉(zhuǎn)發(fā)的配置項(xiàng)

forwarders : {address_list} 表示轉(zhuǎn)發(fā)的服務(wù)器列表

forwarder only : 表示只由目的服務(wù)器權(quán)威解析

forwarder first : 優(yōu)先轉(zhuǎn)發(fā)查詢

測(cè)試

同樣是父服務(wù)器115.29.32.62和子服務(wù)器106.14.212.41,我們現(xiàn)在把父服務(wù)器用來(lái)負(fù)責(zé)DNS的某一個(gè)域作為轉(zhuǎn)發(fā),子服務(wù)器用來(lái)負(fù)責(zé)某一個(gè)域的權(quán)威解析。

現(xiàn)在我們先配置子服務(wù)器的權(quán)威解析:

首先進(jìn)入/var/named目錄,新建一個(gè)文件dnstest.com.zone(這個(gè)域名我并沒(méi)有擁有它,只是為了測(cè)試方便隨便寫(xiě)的),其內(nèi)容為:

$TTL 7200 
@ IN SOA dnstest.com. liumapp.com.gmail.com. (222 1H 15M 1W 1D)
@ IN NS dns.dnstest.com.
dns.dnstest.com. IN A 106.14.212.41
www.dnstest.com. IN A 6.6.6.6

然后修改named.conf,添加下列內(nèi)容:

zone "dnstest.com" {
    type master;
    file "dnstest.com.zone";
};

同時(shí)刪除原來(lái)的

zone "test.liumapp.com" {
    type master;
    file "test.liumapp.com.zone";
};

重啟Bind。

然后進(jìn)入父服務(wù)器的shell操作面板,在開(kāi)始之前,我們要注意一點(diǎn),就是Bind的DNS轉(zhuǎn)發(fā)只有在Bind9版本以上才支持,所以在開(kāi)始之前,我們先使用命令查看一下Bind的版本:

nslookup -q=txt -class=CHAOS version.bind

我的服務(wù)器上出來(lái)的結(jié)果是:

[root@iZ28vhwdq63Z ~]# nslookup -q=txt -class=CHAOS version.bind.

Server:  10.202.72.116

Address:  10.202.72.116#53

version.bind  text = "9.9.9-P3-RedHat-9.9.9-2.1.alios6"

然后修改named.conf,添加以下內(nèi)容:

zone "dnstest.com" {
  type forward;
  forwarders {106.14.212.41;};
}

接下來(lái)我們?cè)诟阜?wù)器上使用dig命令:

dig @127.0.0.1 www.dnstest.com

請(qǐng)求解析www.dnstest.com域名,結(jié)果如下:

同時(shí)要注意,forward的正常使用需要遞歸查詢r(jià)ecursion開(kāi)啟。

DNS主從區(qū)域傳輸

區(qū)域是DNS服務(wù)器的管轄范圍, 是由DNS名稱空間中的單個(gè)區(qū)域或由具有上下隸屬關(guān)系的緊密相鄰的多個(gè)子域組成的一個(gè)管理單位。 因此, DNS名稱服務(wù)器是通過(guò)區(qū)域來(lái)管理名稱空間的,而并非以域?yàn)閱挝粊?lái)管理名稱空間,但區(qū)域的名稱與其管理的DNS名稱空間的域的名稱是一一對(duì)應(yīng)的。或者說(shuō),一個(gè)區(qū)域?qū)?yīng)一系列域名的解析。

DNS主從同步

假設(shè)我們有兩臺(tái)服務(wù)器,分別為dns主服務(wù)器Master和dns從服務(wù)器slave,那么他們之間的dns主從同步步驟是這樣的:

master發(fā)送notify信息給slave

slave去查詢主服務(wù)器的SOA記錄

master將SOA記錄發(fā)送給slave

slave根據(jù)SOA記錄去檢查serial number是否有遞增更新

如果有的話slave向master發(fā)起zone transfer請(qǐng)求,然后master返回響應(yīng)結(jié)果,slave更新記錄。如果沒(méi)有的話就說(shuō)明不需要更新。

DNS主從配置

在開(kāi)始配置之前,先要注意幾個(gè)事項(xiàng):

確保防火墻的規(guī)則不會(huì)攔截Bind的監(jiān)聽(tīng)端口,默認(rèn)為53

確保named用戶擁有操作相關(guān)目錄的權(quán)限(/var/named)

確保主從服務(wù)器的時(shí)鐘一致

搭建完畢后,若修改主服務(wù)器域的配置,serial number必須遞增

服務(wù)器配置

Master服務(wù)器

zone "liumapp.com" {
  type master;
  notify yes;
  also-notify{106.14.212.41;};
  file "liumapp.com.zone";
}

上面的notify yes表示開(kāi)啟notify這個(gè)功能,also-notify{}里面放的是slave服務(wù)器的IP列表。

Slave服務(wù)器

options{

 directory  "/var/named";

 allow-query  { any; };

 recursion  yes;

};
zone "liumapp.com" {

 type  slave;

 file  "slaves/liumapp.com.zone";

 masters {115.29.32.62;};

};

上面的file表示從主服務(wù)器同步過(guò)來(lái)的信息存放地址,我這里就表示存放在/var/named/slaves/liumapp.com.zone

我把IP為115.29.32.62的dns server作為我的master,IP為106.14.212.41的dns server作為我的slave。

首先我們按照上面兩段代碼進(jìn)行主從服務(wù)器的配置。

然后重啟兩臺(tái)服務(wù)器的Bind,重啟之后,應(yīng)該就能夠在從服務(wù)器的/var/named/slaves/下找到一個(gè)liumapp.com.zone文件,它的內(nèi)容應(yīng)該跟主服務(wù)器的/var/named/liumapp.com.zone一致。

所以,這個(gè)時(shí)候我們不管使用命令

dig @115.29.32.62 www.liumapp.com

向主服務(wù)器請(qǐng)求www.liumapp.com的解析還是

dig @106.14.212.41 www.liumapp.com

向從服務(wù)器請(qǐng)求www.liumapp.com的解析,得到的結(jié)果最終都是一樣的。

測(cè)試

現(xiàn)在我們按照上面的配置走完了一遍之后,來(lái)測(cè)試一下主從服務(wù)器之間的同步。

在Master服務(wù)器的/var/named/liumapp.com.zone文件上,我們添加一條解析記錄:

liumei.liumapp.com. IN A 8.8.5.6

然后添加一下它的serial number值,也就是:

liumapp.com.  IN  SOA  liumapp.com.  liumapp.com.gmail.com8 (225  1H  15M  1W 1D)

這條記錄里面的倒數(shù)第5個(gè)數(shù)“225”,我們把它改為226即可。

重啟服務(wù)器之后,敲命令:

dig @106.14.212.41 liumei.liumapp.com

即可成功在子服務(wù)器上解析到liumei.liumapp.com的記錄為8.8.5.6

DNS區(qū)域傳輸限制

首先,我們?cè)诒镜匾慌_(tái)電腦上使用一個(gè)命令:

dig @115.29.32.62 axfr liumapp.com

不出意外,應(yīng)該能夠得到liumapp.com在115.29.32.62這臺(tái)DNS server上的所有解析記錄

但是從安全角度來(lái)講,我肯定不希望這樣的事情發(fā)生,所以就要用到傳輸限制。

方法

基于主機(jī)的訪問(wèn)控制

通過(guò)主機(jī)IP來(lái)限制訪問(wèn)。

allow-transfer : {address_list | none} , 允許域傳輸?shù)臋C(jī)器列表

事務(wù)簽名

通過(guò)密鑰對(duì)數(shù)據(jù)進(jìn)行加密。
事務(wù)簽名的測(cè)試我會(huì)放在后面的DNS數(shù)據(jù)加密里面來(lái)做。

測(cè)試

我們?cè)谥鞣?wù)器上的named.conf配置文件中進(jìn)行修改:

zone "liumapp.com" {

 type  master;

 notify  yes;

 also-notify {106.14.212.41;};

 allow-transfer{106.14.212.41;};

 file "liumapp.com.zone";

};

重啟Bind之后,回到本地電腦上,繼續(xù)使用命令:

dig @115.29.32.62 axfr liumapp.com

結(jié)果如下,請(qǐng)求已被拒絕。

但是通過(guò)106.14.212.41是可以獲取數(shù)據(jù)的:

dig @106.14.212.41 axfr liumapp.com

結(jié)果如下:

DNS數(shù)據(jù)加密 加密方式

DES 對(duì)稱加密

概述:文件加密和解密使用相同的密鑰,簡(jiǎn)單快捷。

流程:假定有發(fā)送方A和接收方B,A和B有相同的密鑰,A發(fā)送明文給B之前,通過(guò)密鑰和加密算法,將明文加密成密文,發(fā)送給B,B再通過(guò)密鑰和解密算法,將密文解密成明文。

IDEA 非對(duì)稱加密

概述:密鑰包括公鑰和私鑰,安全性較DES方式高。

流程:假定有發(fā)送方A和接收方B,B有自己的私鑰和公鑰,A需要獲取B的公鑰,獲取之后,A首先自己生成一個(gè)會(huì)話密鑰,然后這個(gè)會(huì)話密鑰通過(guò)B的公鑰進(jìn)行加密,加密后發(fā)送給B,B再通過(guò)自己的私鑰對(duì)它進(jìn)行解密,從而得到A生成的會(huì)話密鑰。之后,A通過(guò)自己的會(huì)話密鑰將要發(fā)送的明文進(jìn)行加密,發(fā)送給B,B通過(guò)事先得到的會(huì)話密鑰對(duì)發(fā)送過(guò)來(lái)的密文進(jìn)行解密從而得到明文。

DNS事務(wù)簽名

事務(wù)簽名可以通過(guò)兩種加密方式來(lái)實(shí)現(xiàn),分別是:

TSIG:對(duì)稱方式

SIGO:非對(duì)稱方式

現(xiàn)在比較常用的是TSIG這種方法。

TSIG事務(wù)簽名

參數(shù):

allow-transfer : {key keyfile}(key及key的文件位置); 事務(wù)簽名的key

測(cè)試

首先我們進(jìn)入主服務(wù)器,然后生成key:

在主服務(wù)器的/usr/key目錄下,注意賦予key目錄named用戶的讀權(quán)限

輸入以下命令:

dnssec-keygen -a HMAC-MD5 -b 128 -n HOST liumapp-key

-a : 加密算法

-b : 加密位數(shù)

-n : 可以選擇ZONE或者HOST

liumapp-key:密鑰名稱

我生成的公鑰文件和私鑰文件其內(nèi)容如下所示:

然后我們復(fù)制私鑰里面的那段key的內(nèi)容,再進(jìn)入/var/named/chroot/etc目錄,新建一個(gè)liumapp-key文件

其內(nèi)容為:

key "liumapp-key" {

 Algorithm hmac-md5;

 secret "ghWgud4mhN11PKBIITgxbg==";

};

上面的secret的值是從生成的私鑰文件中復(fù)制來(lái)的。

然后編寫(xiě)named.conf文件,添加以下內(nèi)容:

include  "/var/named/chroot/etc/liumapp-key";

注意,這段內(nèi)容要放在zone "liumapp.com"之前。

然后修改zone "liumapp.com"的配置,最終配置結(jié)果如下:

include "/var/named/chroot/etc/liumapp-key";

zone "liumapp.com" {
        type master;
        notify yes;
        also-notify {106.14.212.41;};
        allow-transfer{key "liumapp-key";};
        file "liumapp.com.zone";
};

上面的allow-transfer的key的值是我命名的那個(gè)值。

然后我們重啟Bind,接下來(lái)是配置slave從服務(wù)器,不過(guò)在配置之前,需要先把我們的配置文件liumapp-key拷貝過(guò)去:

使用命令:

scp liumapp-key root@106.14.212.41:`pwd`

結(jié)果如下所示:

然后在從服務(wù)器的named.conf中進(jìn)行配置,一個(gè)是把liumapp-key包含進(jìn)去,然后配置key,最終結(jié)果如下所示:

options{

 directory  "/var/named";

 allow-query  { any; };

 recursion  yes;

};

include  "/var/named/chroot/etc/liumapp-key";

server  115.29.32.62 {

 keys {"liumapp-key";};

};

zone "dnstest.com" {

 type  master;

 file  "dnstest.com.zone";

};

zone "liumapp.com" {

 type  slave;

 file  "slaves/liumapp.com.zone";

 masters {115.29.32.62;};

};

重啟從服務(wù)器的Bind服務(wù),然后我們?cè)倩氐街鞣?wù)器:

添加一條liumapp.com.zone下的A記錄,當(dāng)然還需要遞增一下serial number也不知道加了多少,總之最后我的這個(gè)ZONE的內(nèi)容如下所示:

$TTL 7200

liumapp.com.  IN  SOA  liumapp.com.  liumapp.com.gmail.com8 (226  1H  15M  1W 1D)

liumapp.com.  IN  NS  dns1.liumapp.com.

dns1.liumapp.com.  IN  A  115.29.32.62

www.liumapp.com.  IN  A  106.14.212.41

liumei.liumapp.com.  IN  A  8.8.5.6

heiheihei.liumapp.com.  IN  A  9.9.9.9

@ IN  MX  10  mail

mail  IN  A  115.29.32.63

test.liumapp.com.  IN  NS  ns1.test

ns1.test  IN  A  106.14.212.41

然后重啟bind,再使用命令:

tail -f /var/log/messages

得到的信息如下所示:

可以看到,我修改了liumapp.com.zone之后,主服務(wù)器馬上同步到了從服務(wù)器上,而他們之間的交流,就是用到了TSIG事務(wù)簽名。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/75860.html

相關(guān)文章

  • 進(jìn)階3-4期】深度解析bind原理、使用場(chǎng)景及模擬實(shí)現(xiàn)

    摘要:返回的綁定函數(shù)也能使用操作符創(chuàng)建對(duì)象這種行為就像把原函數(shù)當(dāng)成構(gòu)造器,提供的值被忽略,同時(shí)調(diào)用時(shí)的參數(shù)被提供給模擬函數(shù)。 bind() bind() 方法會(huì)創(chuàng)建一個(gè)新函數(shù),當(dāng)這個(gè)新函數(shù)被調(diào)用時(shí),它的 this 值是傳遞給 bind() 的第一個(gè)參數(shù),傳入bind方法的第二個(gè)以及以后的參數(shù)加上綁定函數(shù)運(yùn)行時(shí)本身的參數(shù)按照順序作為原函數(shù)的參數(shù)來(lái)調(diào)用原函數(shù)。bind返回的綁定函數(shù)也能使用 n...

    guyan0319 評(píng)論0 收藏0
  • 進(jìn)階 6-2 期】深入高階函數(shù)應(yīng)用之柯里化

    摘要:引言上一節(jié)介紹了高階函數(shù)的定義,并結(jié)合實(shí)例說(shuō)明了使用高階函數(shù)和不使用高階函數(shù)的情況。我們期望函數(shù)輸出,但是實(shí)際上調(diào)用柯里化函數(shù)時(shí),所以調(diào)用時(shí)就已經(jīng)執(zhí)行并輸出了,而不是理想中的返回閉包函數(shù),所以后續(xù)調(diào)用將會(huì)報(bào)錯(cuò)。引言 上一節(jié)介紹了高階函數(shù)的定義,并結(jié)合實(shí)例說(shuō)明了使用高階函數(shù)和不使用高階函數(shù)的情況。后面幾部分將結(jié)合實(shí)際應(yīng)用場(chǎng)景介紹高階函數(shù)的應(yīng)用,本節(jié)先來(lái)聊聊函數(shù)柯里化,通過(guò)介紹其定義、比較常見(jiàn)的...

    stackvoid 評(píng)論0 收藏0
  • 進(jìn)階3-1期】JavaScript深入之史上最全--5種this綁定全面解析

    摘要:在嚴(yán)格模式下調(diào)用函數(shù)則不影響默認(rèn)綁定。回調(diào)函數(shù)丟失綁定是非常常見(jiàn)的。因?yàn)橹苯又付ǖ慕壎▽?duì)象,稱之為顯示綁定。調(diào)用時(shí)強(qiáng)制把的綁定到上顯示綁定無(wú)法解決丟失綁定問(wèn)題。 (關(guān)注福利,關(guān)注本公眾號(hào)回復(fù)[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實(shí)戰(zhàn)、面試指導(dǎo)) 本周正式開(kāi)始前端進(jìn)階的第三期,本周的主題是this全面解析,今天是第9天。 本計(jì)劃一共28期,每期重點(diǎn)攻克一個(gè)面試重...

    xavier 評(píng)論0 收藏0
  • JavaScript進(jìn)階之模擬call,apply和bind

    摘要:模擬和模擬一樣,現(xiàn)摘抄下面的代碼添加一個(gè)返回值對(duì)象然后我們定義一個(gè)函數(shù),如果執(zhí)行下面的代碼能夠返回和函數(shù)一樣的值,就達(dá)到我們的目的。 原文:https://zhehuaxuan.github.io/... 作者:zhehuaxuan 目的 本文主要用于理解和掌握call,apply和bind的使用和原理,本文適用于對(duì)它們的用法不是很熟悉,或者想搞清楚它們?cè)淼耐? 好,那我們開(kāi)始...

    CoderBear 評(píng)論0 收藏0
  • 進(jìn)階3-2期】JavaScript深入之重新認(rèn)識(shí)箭頭函數(shù)的this

    摘要:箭頭函數(shù)的尋值行為與普通變量相同,在作用域中逐級(jí)尋找。題目這次通過(guò)構(gòu)造函數(shù)來(lái)創(chuàng)建一個(gè)對(duì)象,并執(zhí)行相同的個(gè)方法。 我們知道this綁定規(guī)則一共有5種情況: 1、默認(rèn)綁定(嚴(yán)格/非嚴(yán)格模式) 2、隱式綁定 3、顯式綁定 4、new綁定 5、箭頭函數(shù)綁定 其實(shí)大部分情況下可以用一句話來(lái)概括,this總是指向調(diào)用該函數(shù)的對(duì)象。 但是對(duì)于箭頭函數(shù)并不是這樣,是根據(jù)外層(函數(shù)或者全局)作用域(...

    Rainie 評(píng)論0 收藏0
  • Regular進(jìn)階: 跨組件通信

    摘要:以上面的例子為代表完整生命周期如下下一篇,應(yīng)該會(huì)以為例,介紹一種基于來(lái)解決跨組件的數(shù)據(jù)通信的方式免費(fèi)領(lǐng)取驗(yàn)證碼內(nèi)容安全短信發(fā)送直播點(diǎn)播體驗(yàn)包及云服務(wù)器等套餐更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營(yíng)經(jīng)驗(yàn)分享請(qǐng)?jiān)L問(wèn)網(wǎng)易云社區(qū)。文章來(lái)源網(wǎng)易云社區(qū) 本文由作者鄭海波授權(quán)網(wǎng)易云社區(qū)發(fā)布。 背景在組件化不斷深入的大環(huán)境下,無(wú)論使用哪種 MDV 框架都最終會(huì)遇到一個(gè)頭疼的問(wèn)題,就是「跨組件通信」。 下圖是個(gè)簡(jiǎn)單的例子 ...

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

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

0條評(píng)論

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