国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

深入理解JavaScript之變量對象(Variable Object)

共 7754字,需瀏覽 16分鐘

 ·

2021-03-20 10:49

英文  | http://dmitrysoshnikov.com/ecmascript/chapter-2-variable-object/


介紹

JavaScript編程的時候總避免不了聲明函數(shù)和變量,以成功構(gòu)建我們的系統(tǒng),但是解釋器是如何并且在什么地方去查找這些函數(shù)和變量呢?我們引用這些對象的時候究竟發(fā)生了什么?
大多數(shù)ECMAScript程序員應(yīng)該都知道變量與執(zhí)行上下文有密切關(guān)系:
var a = 10; // 全局上下文中的變量
(function () { var b = 20; // function上下文中的局部變量})();
alert(a); // 10alert(b); // 全局變量 "b" 沒有聲明

并且,很多程序員也都知道,當(dāng)前ECMAScript規(guī)范指出獨立作用域只能通過“函數(shù)(function)”代碼類型的執(zhí)行上下文創(chuàng)建。也就是說,相對于C/C++來說,ECMAScript里的for循環(huán)并不能創(chuàng)建一個局部的上下文。

for (var k in {a: 1, b: 2}) {  alert(k);}
alert(k); // 盡管循環(huán)已經(jīng)結(jié)束但變量k依然在當(dāng)前作用域

我們來看看一下,我們聲明數(shù)據(jù)的時候到底都發(fā)現(xiàn)了什么細節(jié)。

數(shù)據(jù)聲明

如果變量與執(zhí)行上下文相關(guān),那變量自己應(yīng)該知道它的數(shù)據(jù)存儲在哪里,并且知道如何訪問。這種機制稱為變量對象(variable object)。

變量對象(縮寫為VO)是一個與執(zhí)行上下文相關(guān)的特殊對象,它存儲著在上下文中聲明的以下內(nèi)容:

變量 (var, 變量聲明);函數(shù)聲明 (FunctionDeclaration, 縮寫為FD);函數(shù)的形參

舉例來說,我們可以用普通的ECMAScript對象來表示一個變量對象:

VO = {};

就像我們所說的, VO就是執(zhí)行上下文的屬性(property):

activeExecutionContext = {  VO: {    // 上下文數(shù)據(jù)(var, FD, function arguments)  }};

只有全局上下文的變量對象允許通過VO的屬性名稱來間接訪問(因為在全局上下文里,全局對象自身就是變量對象,稍后會詳細介紹),在其它上下文中是不能直接訪問VO對象的,因為它只是內(nèi)部機制的一個實現(xiàn)。

當(dāng)我們聲明一個變量或一個函數(shù)的時候,和我們創(chuàng)建VO新屬性的時候一樣沒有別的區(qū)別(即:有名稱以及對應(yīng)的值)。

例如:

var a = 10;
function test(x) { var b = 20;};
test(30);

對應(yīng)的變量對象是:

// 全局上下文的變量對象VO(globalContext) = {  a: 10,  test: function>};
// test函數(shù)上下文的變量對象VO(test functionContext) = { x: 30, b: 20};

在具體實現(xiàn)層面(以及規(guī)范中)變量對象只是一個抽象概念。(從本質(zhì)上說,在具體執(zhí)行上下文中,VO名稱是不一樣的,并且初始結(jié)構(gòu)也不一樣。

不同執(zhí)行上下文中的變量對象

對于所有類型的執(zhí)行上下文來說,變量對象的一些操作(如變量初始化)和行為都是共通的。從這個角度來看,把變量對象作為抽象的基本事物來理解更為容易。同樣在函數(shù)上下文中也定義和變量對象相關(guān)的額外內(nèi)容。

抽象變量對象VO (變量初始化過程的一般行為)  ╠══> 全局上下文變量對象GlobalContextVO  ║        (VO === this === global)  ╚══> 函數(shù)上下文變量對象FunctionContextVO           (VO === AO, 并且添加了<arguments>和<formal parameters>)

我們來詳細看一下:

全局上下文中的變量對象

首先,我們要給全局對象一個明確的定義

全局對象(Global object) 是在進入任何執(zhí)行上下文之前就已經(jīng)創(chuàng)建了的對象;
這個對象只存在一份,它的屬性在程序中任何地方都可以訪問,全局對象的生命周期終止于程序退出那一刻。

全局對象初始創(chuàng)建階段將Math、String、Date、parseInt作為自身屬性,等屬性初始化,同樣也可以有額外創(chuàng)建的其它對象作為屬性(其可以指向到全局對象自身)。

例如,在DOM中,全局對象的window屬性就可以引用全局對象自身(當(dāng)然,并不是所有的具體實現(xiàn)都是這樣):

global = {  Math: <...>,  String: <...>  ...  ...  window: global //引用自身};

當(dāng)訪問全局對象的屬性時通常會忽略掉前綴,這是因為全局對象是不能通過名稱直接訪問的。

不過我們依然可以通過全局上下文的this來訪問全局對象,同樣也可以遞歸引用自身。例如,DOM中的window。綜上所述,代碼可以簡寫為:

String(10); // 就是global.String(10);
// 帶有前綴window.a = 10; // === global.window.a = 10 === global.a = 10;this.b = 20; // global.b = 20;

因此,回到全局上下文中的變量對象——在這里,變量對象就是全局對象自己:

VO(globalContext) === global;

非常有必要要理解上述結(jié)論,基于這個原理,在全局上下文中聲明的對應(yīng),我們才可以間接通過全局對象的屬性來訪問它(例如,事先不知道變量名稱)。

var a = new String('test');
alert(a); // 直接訪問,在VO(globalContext)里找到:"test"
alert(window['a']); // 間接通過global訪問:global === VO(globalContext): "test"alert(a === this.a); // true
var aKey = 'a';alert(window[aKey]); // 間接通過動態(tài)屬性名稱訪問:"test"

函數(shù)上下文中的變量對象

在函數(shù)執(zhí)行上下文中,VO是不能直接訪問的,此時由活動對象(activation object,縮寫為AO)扮演VO的角色。

VO(functionContext) === AO;

活動對象是在進入函數(shù)上下文時刻被創(chuàng)建的,它通過函數(shù)的arguments屬性初始化。arguments屬性的值是Arguments對象:

AO = {    arguments: <ArgO>};

Arguments對象是活動對象的一個屬性,它包括如下屬性:

  1. callee — 指向當(dāng)前函數(shù)的引用

  2. length — 真正傳遞的參數(shù)個數(shù)

  3. properties-indexes (字符串類型的整數(shù)) 屬性的值就是函數(shù)的參數(shù)值(按參數(shù)列表從左到右排列)。properties-indexes內(nèi)部元素的個數(shù)等于arguments.length. properties-indexes 的值和實際傳遞進來的參數(shù)之間是共享的。

例如:

function foo(x, y, z) {
// 聲明的函數(shù)參數(shù)數(shù)量arguments (x, y, z) alert(foo.length); // 3
// 真正傳進來的參數(shù)個數(shù)(only x, y) alert(arguments.length); // 2
// 參數(shù)的callee是函數(shù)自身 alert(arguments.callee === foo); // true
// 參數(shù)共享
alert(x === arguments[0]); // true alert(x); // 10
arguments[0] = 20; alert(x); // 20
x = 30; alert(arguments[0]); // 30
// 不過,沒有傳進來的參數(shù)z,和參數(shù)的第3個索引值是不共享的
z = 40; alert(arguments[2]); // undefined
arguments[2] = 50; alert(z); // 40
}
foo(10, 20);

這個例子的代碼,在當(dāng)前版本的Google Chrome瀏覽器里有一個bug  — 即使沒有傳遞參數(shù)z,z和arguments[2]仍然是共享的。

處理上下文代碼的2個階段

現(xiàn)在我們終于到了本文的核心點了。執(zhí)行上下文的代碼被分成兩個基本的階段來處理:

  1. 進入執(zhí)行上下文

  2. 執(zhí)行代碼

變量對象的修改變化與這兩個階段緊密相關(guān)。

注:這2個階段的處理是一般行為,和上下文的類型無關(guān)(也就是說,在全局上下文和函數(shù)上下文中的表現(xiàn)是一樣的)。

進入執(zhí)行上下文

當(dāng)進入執(zhí)行上下文(代碼執(zhí)行之前)時,VO里已經(jīng)包含了下列屬性(前面已經(jīng)說了):

函數(shù)的所有形參(如果我們是在函數(shù)執(zhí)行上下文中)

— 由名稱和對應(yīng)值組成的一個變量對象的屬性被創(chuàng)建;沒有傳遞對應(yīng)參數(shù)的話,那么由名稱和undefined值組成的一種變量對象的屬性也將被創(chuàng)建。

所有函數(shù)聲明(FunctionDeclaration, FD)

—由名稱和對應(yīng)值(函數(shù)對象(function-object))組成一個變量對象的屬性被創(chuàng)建;如果變量對象已經(jīng)存在相同名稱的屬性,則完全替換這個屬性。

所有變量聲明(var, VariableDeclaration)

— 由名稱和對應(yīng)值(undefined)組成一個變量對象的屬性被創(chuàng)建;如果變量名稱跟已經(jīng)聲明的形式參數(shù)或函數(shù)相同,則變量聲明不會干擾已經(jīng)存在的這類屬性。

讓我們看一個例子:

function test(a, b) {  var c = 10;  function d() {}  var e = function _e() {};  (function x() {});}
test(10); // call

當(dāng)進入帶有參數(shù)10的test函數(shù)上下文時,AO表現(xiàn)為如下:

AO(test) = {  a: 10,  b: undefined,  c: undefined,  d: <reference to FunctionDeclaration "d">  e: undefined};

注意,AO里并不包含函數(shù)“x”。這是因為“x” 是一個函數(shù)表達式(FunctionExpression, 縮寫為 FE) 而不是函數(shù)聲明,函數(shù)表達式不會影響VO。

不管怎樣,函數(shù)“_e” 同樣也是函數(shù)表達式,但是就像我們下面將看到的那樣,因為它分配給了變量 “e”,所以它可以通過名稱“e”來訪問。

函數(shù)聲明FunctionDeclaration與函數(shù)表達式FunctionExpression 的不同,我們會在Functions進行詳細的探討,也可以參考《深入理解JavaScript之揭秘命名函數(shù)表達式》來了解。

這之后,將進入處理上下文代碼的第二個階段 — 執(zhí)行代碼。

代碼執(zhí)行

這個周期內(nèi),AO/VO已經(jīng)擁有了屬性(不過,并不是所有的屬性都有值,大部分屬性的值還是系統(tǒng)默認(rèn)的初始值undefined )。

還是前面那個例子, AO/VO在代碼解釋期間被修改如下:

AO['c'] = 10;AO['e'] = <reference to FunctionExpression "_e">;

再次注意,因為FunctionExpression“_e”保存到了已聲明的變量“e”上,所以它仍然存在于內(nèi)存中。

而FunctionExpression “x”卻不存在于AO/VO中,也就是說如果我們想嘗試調(diào)用“x”函數(shù),不管在函數(shù)定義之前還是之后,都會出現(xiàn)一個錯誤“x is not defined”,未保存的函數(shù)表達式只有在它自己的定義或遞歸中才能被調(diào)用。

另一個經(jīng)典例子:

alert(x); // function
var x = 10;alert(x); // 10
x = 20;
function x() {};
alert(x); // 20

為什么第一個alert “x” 的返回值是function,而且它還是在“x” 聲明之前訪問的“x” 的?為什么不是10或20呢?因為,根據(jù)規(guī)范函數(shù)聲明是在當(dāng)進入上下文時填入的;

同意周期,在進入上下文的時候還有一個變量聲明“x”,那么正如我們在上一個階段所說,變量聲明在順序上跟在函數(shù)聲明和形式參數(shù)聲明之后,而且在這個進入上下文階段,變量聲明不會干擾VO中已經(jīng)存在的同名函數(shù)聲明或形式參數(shù)聲明,因此,在進入上下文時,VO的結(jié)構(gòu)如下:

VO = {};
VO['x'] = <reference to FunctionDeclaration "x">
// 找到var x = 10;// 如果function "x"沒有已經(jīng)聲明的話// 這時候"x"的值應(yīng)該是undefined// 但是這個case里變量聲明沒有影響同名的function的值
VO['x'] = <the value is not disturbed, still function>

緊接著,在執(zhí)行代碼階段,VO做如下修改:

VO['x'] = 10;VO['x'] = 20;

我們可以在第二、三個alert看到這個效果。

在下面的例子里我們可以再次看到,變量是在進入上下文階段放入VO中的。(因為,雖然else部分代碼永遠不會執(zhí)行,但是不管怎樣,變量“b”仍然存在于VO中。)

if (true) {  var a = 1;} else {  var b = 2;}
alert(a); // 1alert(b); // undefined,不是b沒有聲明,而是b的值是undefined

關(guān)于變量

通常,各類文章和JavaScript相關(guān)的書籍都聲稱:“不管是使用var關(guān)鍵字(在全局上下文)還是不使用var關(guān)鍵字(在任何地方),都可以聲明一個變量”。請記住,這是錯誤的概念:

任何時候,變量只能通過使用var關(guān)鍵字才能聲明。

上面的賦值語句:

a = 10;

這僅僅是給全局對象創(chuàng)建了一個新屬性(但它不是變量)?!安皇亲兞俊辈⒉皇钦f它不能被改變,而是指它不符合ECMAScript規(guī)范中的變量概念,所以它“不是變量”(它之所以能成為全局對象的屬性,完全是因為VO(globalContext) === global,大家還記得這個吧?)。

讓我們通過下面的實例看看具體的區(qū)別吧:

alert(a); // undefinedalert(b); // "b" 沒有聲明
b = 10;var a = 20;

所有根源仍然是VO和進入上下文階段和代碼執(zhí)行階段:

進入上下文階段:

VO = {  a: undefined};

我們可以看到,因為“b”不是一個變量,所以在這個階段根本就沒有“b”,“b”將只在代碼執(zhí)行階段才會出現(xiàn)(但是在我們這個例子里,還沒有到那就已經(jīng)出錯了)。

讓我們改變一下例子代碼:

alert(a); // undefined, 這個大家都知道,
b = 10;alert(b); // 10, 代碼執(zhí)行階段創(chuàng)建
var a = 20;alert(a); // 20, 代碼執(zhí)行階段修改

關(guān)于變量,還有一個重要的知識點。變量相對于簡單屬性來說,變量有一個特性(attribute):{DontDelete},這個特性的含義就是不能用delete操作符直接刪除變量屬性。

a = 10;alert(window.a); // 10
alert(delete a); // true
alert(window.a); // undefined
var b = 20;alert(window.b); // 20
alert(delete b); // false
alert(window.b); // still 20

但是這個規(guī)則在有個上下文里不起走樣,那就是eval上下文,變量沒有{DontDelete}特性。

eval('var a = 10;');alert(window.a); // 10
alert(delete a); // true
alert(window.a); // undefined

使用一些調(diào)試工具(例如:Firebug)的控制臺測試該實例時,請注意,F(xiàn)irebug同樣是使用eval來執(zhí)行控制臺里你的代碼。因此,變量屬性同樣沒有{DontDelete}特性,可以被刪除。

特殊實現(xiàn): parent 屬性

前面已經(jīng)提到過,按標(biāo)準(zhǔn)規(guī)范,活動對象是不可能被直接訪問到的。但是,一些具體實現(xiàn)并沒有完全遵守這個規(guī)定,例如SpiderMonkey和Rhino;的實現(xiàn)中,函數(shù)有一個特殊的屬性 parent,通過這個屬性可以直接引用到活動對象(或全局變量對象),在此對象里創(chuàng)建了函數(shù)。

例如 (SpiderMonkey, Rhino):

var global = this;var a = 10;
function foo() {}
alert(foo.__parent__); // global
var VO = foo.__parent__;
alert(VO.a); // 10alert(VO === global); // true

在上面的例子中我們可以看到,函數(shù)foo是在全局上下文中創(chuàng)建的,所以屬性__parent__ 指向全局上下文的變量對象,即全局對象。

然而,在SpiderMonkey中用同樣的方式訪問活動對象是不可能的:在不同版本的SpiderMonkey中,內(nèi)部函數(shù)的__parent__ 有時指向null ,有時指向全局對象。

在Rhino中,用同樣的方式訪問活動對象是完全可以的。

例如 (Rhino):

var global = this;var x = 10;
(function foo() {
var y = 20;
// "foo"上下文里的活動對象 var AO = (function () {}).__parent__;
print(AO.y); // 20
// 當(dāng)前活動對象的__parent__ 是已經(jīng)存在的全局對象 // 變量對象的特殊鏈形成了 // 所以我們叫做作用域鏈 print(AO.__parent__ === global); // true
print(AO.__parent__.x); // 10
})();

總結(jié)

在這篇文章里,我們深入學(xué)習(xí)了跟執(zhí)行上下文相關(guān)的對象。我希望這些知識對您來說能有所幫助,能解決一些您曾經(jīng)遇到的問題或困惑。


推薦閱讀
JavaScript設(shè)計模式之單例模式

本文完~
瀏覽 54
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 俺也去俺也来| 亚洲成人二区| 免费看国产黄色| 秋霞日韩| 久色性爱视频| 高清无码在线看| 国产又爽又黄免费视频免费| 美日韩视频| 波多野结衣大战黑人| 高清无码视频直接看| 天堂网中文在线| 影音先锋人妻限定| 欧美一级在线| 欧美性精品| 狠狠躁夜夜躁人爽| 欧美一区二区三区免费| 中文字幕区| 性爱视频网页| 日本免费A∨| 日本v片| 亚洲无码在线观看免费| 99re99| 五月婷婷欧美| 亚洲无码高清视频在线观看| 少妇搡BBBB搡BBB搡造水爽| 欧美一级aaa| 人妻天天操| 色国产在线| 欧美高清一区二区| 97av视频| 久9久9| 欧美黄片AAA| 婷婷五月天激情俺来也| 国产免费一区二区三区| 亚洲十八禁| 日本无码视频在线观看| 中文字幕在线精品| 亚洲欧美日韩电影| 欧美日韩国内| 亚洲第一色图| 久久精品成人导航| 超碰97av| 3d动漫精品一区二区三区在线观看 | 日韩人妻精品中文字幕专区不卡| 日日搔AV一区二区三区| 91一级片| 久久久久久久9999| 精品国产AV无码一区二区三区 | 久久婷婷国产麻豆91天堂| 日韩成人大片| 在线观看精品视频| 国产精品V日韩精品V在线观看| 亚洲丁香五月天| 国产综合色网| 精品少妇无码视频| 色色在线观看| 成人精品二区| 在线观看中文字幕视频| 91一区二区在线观看| 就爱操逼网| 日韩成人无| 青娱乐在线成人| 乱码少妇| 翔田千里被操120分钟| 成人自拍视频| 波多野结衣视频在线播放| 亚洲高清无码视频在线观看| 欧美精品久久久久久| 无码一区在线观看| 操b视频网站| 无码福利| 国产第四页| 玖玖资源在线| 国产高清免费视频| 一本一道久久a久久精品蜜桃| 91嫖妓站街按摩店老熟女| 亚洲成人A片| 天天干天天干天天日| 俺来也俺也啪www色| 午夜精品无码| 欧美在线不卡| 亚洲一级二级三级| 手机看片福利| 成人视频网| 日韩大香蕉| 国产精品三级片| 影音先锋人妻限定| 国产欧美高清在线| 高潮喷水AⅤ| 5252a我爱haose01我愿| 国产成人精品一区二区三区四区| 亚洲无码久久网| 在线视频内射| 日本精品视频一区二区| 成人无码精品亚洲| 中文字幕一区二区三区在线观看 | 欧美黑吊大战白妞欧美大片| 日韩av一区二区三区| 国产在线a| 另类在线| 天天干天天做| 黑人无码| 青青操国产乱伦| 国产色婷婷一区二区| 亚洲欧美日韩性爱| 黄色视频免费在线看| 在线观看免费黄视频| 无码欧美人XXXXX日本无码| 无码人妻精品一区二区蜜桃网站| 台湾精品一区二区三区| 国产亚洲欧美视频| 国产亚洲三级| 亚洲免费黄片| 久99视频| 另类罕见稀奇videos| 国产动态图| 国产操骚逼| 一本色道久久| 成人免费黄色片| 免费69视频| 成人综合大香蕉| 精品成人av| 免费作爱视频| 91麻豆免费视频| 久久精品99久久久久久| 四川少扫搡BBBBB搡B| 今天成全在线观看高清| 亚洲日韩中文字幕| 懂色av| 在线免费小黄片| 日韩av电影免费在线观看| 91就去干| 成人亚洲综合| 亚洲精品乱码久久久久久| 天天骑夜夜操| 国产精品99久久久久的广告情况| 自拍偷拍网站| 久久久久久97电影院电影院无码| 天天爽天天爽夜夜爽| 亚洲成人动漫免费| 九一国产在线| 天天拍夜夜拍| 四虎高清无码| 天天干天天添| 成人激情视频A极| 人人草人人看人人摸| 99视频+国产日韩欧美| 国产精品毛片一区二区在线看| 91超碰免费在线| 在线日韩av| 激情丁香| 成人亚洲| 免费AV网站观看| 国产黄色电影在线| 国产熟睡乱子伦午夜视频_第1集| 欧美日韩大片| 嗯啊av| AV电影在线观看| 无码中文暮| 5252a我爱haose01我愿| 成人无码影院日韩,成人年…| 91大香蕉伊人| 免费观看黄色电影| 午夜激情视频| 午夜操日在线| 精品成人无码一区二区三区| 日韩群交视频| 国产网址| 日韩超碰在线| 一区二区三区成人| 亚洲成人中文字幕在线| 国产无码一二三区| 日本成人A片| AV高清| 狠狠撸狠狠干| 狠狠躁夜夜躁人人爽人妻| 亚洲二区无码| 狠狠干狠狠艹| 欧美疯狂做受XXXXX高潮| 污网址| 驲韩在线视频免费观看| 在线免费黄色网址| 国产男人天堂| 操逼电影网| 欧美、日韩、中文、制服、人妻| 国产精品色情A级片| 国产熟妇搡BBBB搡BBBB搡| 日韩无码视频观看| 97午夜福利| 91精品人妻一区二区三区| 欧美国产日韩欧美亚洲国产| 久久久久中文字幕| 黄色片国产| 久久穴| 免费一区二区三区四区| 国产免费成人在线观看| 久久久久亚洲AV无码网影音先锋| 欧美夜夜骑| 国产一级特黄A片| 国产色天使| 色综合社区| 少妇厨房愉情理伦BD在线观看| 欧美天堂在线观看| 做爱网站| 亚洲无码一区二区三区妃光| 久久午夜无码鲁丝片主演是谁| 亚洲五月天在线| 夜夜嗨老熟女AV一区二区三区 | 操美女久久| 亚洲小说区图片区都市| 苍井空无码| 91久久久裸身美女| 欧美国产第一页| 青草草在线| 日本免费在线| 欧美男人天堂网| 麻豆传媒免费观看| 性爱视频无码| 五月天激情小说| 国产精品无码在线观看| 亚洲国产精品一区二区三区| 翔田千里在线观看| 91丨九色丨熟女丰满| 国产成人a| 日韩一级中文字幕| AV四虎| 亚洲另类色图| 日本爱爱视频| henhengan| 影音先锋av资源在线| 天天干,夜夜操| av国产精品| 成人免费乱码大片a毛片蜜芽| 18禁网站禁片免费观看| 波多野结衣一区二区三区| 国产精品九九视频| 熟女3P| 一级电影网站| 久久久精品国产视频| 亚洲无码AV一区二区| 西西444www无码精品| 日本韩国叼嘿片| 日韩第一色| 色爽av| 久久一区二区三区四区| 国产91嫩草乱婬A片2蜜臀| 中文字幕一二三区| 成人午夜免费视频| 午夜成人一区二区| 亚洲V无码| 日逼图| 美女毛片网站| 精品久久一区二区三区四区| 特级西西WWW888| 日韩无码91| 国产精品第一| 91拍真实国产伦偷精品| 亚洲欧美高清视频| 成人网站三级片| 91精品国产综合久久久蜜臀酒店| 香蕉国产精品| 国产秘精品一区二区三区免费 | 色色在线观看| 亚洲午夜在线| 黄片在线视频| 你懂得视频在线观看| 婷婷精品在线| 91视频在线| 国产午夜精品一区二区三区四区| 天堂综合| 午夜成人福利视频| 欧美操逼在线| 国产女人18毛片18精品| 亚洲成人在线一区| 在线免费观看亚洲| 日本中文字幕在线观看| 在线视频内射| 另类老妇videos另类| 黄色免费a级片一级片| 天堂在线观看av| 免费A片国产毛无码A片| 久久成人久久| 开心五月激情婷婷| 欧美色综合| 婷婷五月天色综合| 操屄免费视频| 亚洲午夜福利一区二区三区| 欧美性爱手机在线| 丝袜无码| 尻屄视频免费| 青娱乐网| 白丝在线观看| 久草久久| 亚洲第一中文字幕网| 亚洲一区翔田千里无码| 日韩第一页| 一卡二卡在线视频| 日本熟妇一区二区三区| 日日操天天操夜夜操| 狼友视频首页| 免费一级A片| 日本色区| A片免费网站| aV无码av天天aV天天爽第一| 强伦轩一区二区三区四区| 亚洲丁香五月激情| 大香蕉网在线| 青娱乐大香蕉| 永久m3u8在线观看| 免费无码高清视频| 丁香久久婷婷| 日韩特级片| 一级A片久久久免费直播间| 亚洲欧美日韩色图| 欧美精品A级片| 天天日,天天干,天天操| 国产AV影视| 国内视频一区| 亚洲97| 欧美第一视频| 午夜黄色影院| 黄色网页免费观看| 精品乱子伦一区二区三区免费播放 | 亚州无码| 成人毛片18女人毛片真水| 在线播放亚洲| 色哟哟无码精品一区二区三区| 中文丰满亲子伦| 青青成人视频| 人人操人人操人人操| 午夜一区二区三区免费| 无码成人A片在线观看| 少妇搡BBBB搡BBB搡打电话| 五月天婷婷丁香综合视频| se99av| 成人亚洲AV| 久久久精品影院| 99热精品国产| 欧美色图视频网站| 无码内射在线播放| 久久久久久久久久久久久自慰小片| 99re超碰| 亚洲欧美色图| 四川少妇bbbbbbbbb| 91麻豆免费视频网站| 波多野吉衣高清无码| 丁香婷婷色五月| 北条麻妃一区二区三区在线播放| 99re这里只有| 国产精品美女毛片j酒店| 一级无码毛片| 亚洲性无码| 免费一级黄色片| 国产亚洲色婷婷久久99精品| 亚洲日韩视频| www.91com| 久久久久久久久久国产精品免费观看-百度 | 欧美成人精品AAA| 中文字幕免费在线观看视频| 波多野结衣一区| 一本加勒比HEZYO东京热无码| 夜夜操夜夜操| 天天爽天天摸| 无码22p| 四虎成人无码| 中文字幕日日| 亚洲AV无码一区东京热久久| 欧美亚洲小说| 亚洲人在线| 欧美+日产+中文| 性爱视频免费网站| 成人777777免费视频色| 伊人干综合| 国产九九热视频| 手机不卡黄色视频在线| 日韩一级片在线播放| 九九热无码| 高清无码自拍| 欧美日韩国产成人在线观看| av无码网站| 国产精品理论片| 奇米影视亚洲春色| 中文不卡在线| 亚洲色图p| 久久久久久穴| 91在线观看免费视频| 成人乱无码AV在线观看| 人成在线观看| 亚洲无码三级| 黄色电影一区二区| 亚洲av性爱| 成人精品毛片| 另类老妇奶性生BBwBBw偷拍| 九九热精品在线视频| 日韩啊啊啊| 91大神免费观看| 在线观看网址你懂的| 羞羞AV| 无码高清一区| 国产亚洲精品午夜福利巨大软件| 国产久久久| 国产三级小视频| 三级av网站| 国产精品久久久久久久久久两年半 | 高潮国产视频| aV无码av天天aV天天爽第一| 91乱子伦国产乱子伦!| 刘玥精品国产一区二区三区| 日本免费高清视频在线观看一区| 欧美日韩国产中文字幕| 97精品人人A片免费看| 九九九亚洲| 大伊香蕉在线| 国产乱婬片视频| 欧美日韩无码| 91高清无码视频| 苍井空亚洲精品AA片在线播放| 午夜男人天堂| 西西444WWW无码大胆在线观看| 国产精品成人AV片| 性爱视频久久| 国色天香一区二区| 免费黄色网页| 成人午夜啪免费视频在线观看软件| 亚洲天堂在线播放| 麻豆亚洲AV成人无码久久精品 | www.91超碰在线| 欧美、日韩、中文、制服、人妻| 成人网站无码| 西西人体大胆ww4444图片| 狠狠操综合| 波多野结衣av在线观看| 北条麻妃99精彩视频| 99久| 91一起草高清资源| 亚洲婷婷三级成人网| 你懂的在线网站| 免费在线观看内射| 日韩无码网| 99久久99九九九99九他书对| 九九九九九九精品视频| 日韩成人免费视频| 国产三级在线观看视频| 亚洲中文无码AV在线| 国产小视频在线| 美日韩免费视频| 人人舔人人爱| 一本色道久久综合亚洲精东小说| AV高清| 超碰黄片| 欧美日韩国产尤物主播精品| 猛男大粗猛爽H男人味| 亚洲日韩国产成人精品久久| 日本在线一级片| 91美女视频| 青青草大香蕉伊人| 国产欧美在线观看不卡| 大香蕉人人| 黄色一级视频网站| AV中文字幕电影| 九九久久精品| 日韩a级毛片| 免费观看黄色AV| 操逼三级视频| 91人妻无码精品一区二区| 大香蕉日| 欧美爱爱免费看| 青青草手机视频| 97日日| 俺去也在线播放| 超碰自拍私拍二区三区区| 欧洲成人免费视频| 国内精品久久久久久久久98| 操b视频免费看| 五月天无码视频| 天天操天天操天天操天天操| 西西人体444www| 国产高清AV| 亚洲欧美视频在线| 91黄色视频在线播放| 东京亚洲无码| 五月婷婷激情| 成人性爱免费视频| 超碰2023| 国产伦子伦一级A片免费看老牛 | 亚洲无线观看| 国产操比| 91一二区| 69精品免费视频| 久草91| 免费久久久| 欧美四虎| 五月丁香婷婷成人| 国产日韩欧美在线观看| 北条麻妃无码精品AV| 成人做爰黄A片免费看| 欧美日韩国| 欧美午夜福利| 色色毛片| 欧美AAA在线观看| 亚洲成人视频网| 2025最新国产精品每日更新 | 秋霞一区二区三区无码| 在线观看禁无码精品| 亚洲精品一二三| 四虎亚洲无码| 伊人春色网| 激情一区二区三区| 欧美高清视频| 亚洲AV成人无码一区二区三区| 天天操天天射天天爽| 日韩三级视频| 九九99精品| 丁香社区五月天| 欧美AAA大片| 亚洲国产成人自拍| 久久中文网| 中文字幕黄色电影| 一区二区三区免费播放| 99久久网站| 国产女人精品视频| 精品视频一区二区三区| 二区三区在线| 日本欧美在线播放中文| 国产美女免费视频| 色老板免费精品无码免费视频 | 国产成人在线精品| 久久精品一区| 成人性爱视频在线观看| 韩国无码片| 激情五月婷婷综合| 在线中文字幕第一页| 超碰超爽| 亚洲人成在线观看| 一区二区免费看| 日韩综合在线视频| 999热视频| 亚洲视频在线观看中文字幕| 青草中文娱乐网在线| 天天av天天av天天爽| 91人人视频| 一区二区三区精品无码| 一级黄在线观看| 久久亚洲Aⅴ成人无码国产丝袜| 国产在线激情| 国产精品永久免费| 成人av中文字幕| 三浦恵子一级婬片A片| AV成人无码| 免费在线国产| 国产福利视频| 先锋资源av| 五月天欧美性爱| 精品一区二区三区视频| 特级西西西88大胆无码| 特黄视频在线观看| 狠狠狠久久久| 亚洲第一黄色| 久久精品成人电影| 波多野结衣在线网站| 国产嫩苞又嫩又紧AV在线| 99久久婷婷国产综合精品| 国产女人高潮的AV毛片| 国产在线久久久| 中文字幕精品人妻在线| 玖玖资源在线| 97激情| 中文无码一区二区三区| 蜜桃AV无码一区二区三区| 亚洲黄色视频免费观看| 国产超级无码高清在线视频观看| 天天天天天天天天干| 无码免费观看| 91av在线看| 97人人爱| 美女日屄| 久久国际精品| 天天干妹子| 日本免费色视频| 人成视频免费观看| 亚洲成人在线视频观看| 成人激情视频A极| 91豆花视频18| 久久久9999| 青春草在线观看视频| 国产无遮挡A片又黄又爽小直播| 五月天婷婷久久| 亚洲日韩欧美一厂二区入| 懂色av懂色av粉嫩av| 久久久久久亚洲AV黄床| 亚洲高清视屏| 国产在线观看欧美| 黄色一级电影| 99久久综合| 大鸡吧网站| 一级黄色免费电影| 99这里有精品视频| 欧美久久视频| 中文字幕在线播放视频| 人妻啪啪视频| 中文字幕第一页av| 无码国产99精品久久久久网站 | 在线观看视频免费无码| 亚洲精品国产精品乱码视99 | 俺也来俺也去| 黄色视频在线观看网站| 99热最新网址| 青青草视频在线免费观看| 最好看的MV中文字幕国语| 一区二区三区免费看| 亚洲无码成人网| 国产男女AV| 亚洲无码AV片| 蝌蚪窝免费视频| a无码视频在线观看| 日韩中文字幕视频在线观看| AV资源免费| 91视频入口| 国产乱子伦一区二区三区视频| 人妻体体内射精一区二区| 四虎在线观看视频| 久久久www| 黑人干亚洲人| 蜜臀AV一区二区三区免费看| 2025最新国产精品每日更新| A片在线免费观看| 91亚洲国产| 丁香六月婷婷综合| 亚洲天堂成人| 18XXX亚洲HD护士JD| 蜜桃久久99精品久久久酒店| 国精品91无码一区二区三区在线 | 一级色情片| 国产资源在线观看| 日本熟妇一区二区三区| 啪啪毛片| 欧美女人操逼| 日本三级中文字幕| 中文无码一区| 精品A区| JiZZjiZZ亚洲成熟熟妇| 人人色视频| 欧美国产日本| 亚洲小说欧美激情另类A片小说| 久久久久久久久久久成人| 91麻豆福利视频| 中文字幕亚洲高清| 91麻豆香蕉| 淫色淫香综合网| 麻豆传媒在线播放| 在线毛片网站| 青青青草视频在线观看| 无码中文字幕在线播放| 午夜网页| 人妻人人澡| 成人三级视频在线观看| 国产福利视频导航| 免费黄色视频网站| 亚洲成人日韩| 久久久久无码精品亚洲日韩| 欧美日韩国产一区二区| 无码视频免费看| 日日操视频| 性爱乱伦视频| 国内老熟妇对白XXXXHD| 亚洲一级黄片| 人人摸人人看| 亚洲猛男操逼欧美国产视频| 欧美亚洲成人精品| 无码国产传媒精品一区| 精品亚洲一区二区三区| 狠狠操夜夜操| a片免费网址| 东京热视频网址| 自拍欧美亚洲| 99re在线观看观看这里只有精品| 99国产在线观看免费视频| 一级日逼视频| 91人人操人人爽| 天天干国产| 免费黄片视频在线观看| 日本亚洲黄色视频| 一级欧美| 无码久久久| 在线视频91| 欧美日韩一| 性感成人在线| 日韩成人视屏| 欧美日韩一级在线观看| 高清无码高潮| 日韩加勒比在线| 欧美国产第一页| 在线观看免费视频黄| 污网站免费观看| 国产一二区| 国产精品色8| 婷婷狠狠| 成人黄片网站| 日本免费A片| 最新va在线观看| 麻豆福利在线| 一区二区中文| 91无码人妻东京热精品一区| 免费无码婬片AAAA片在线蜜芽| 久久学生妹| 亚洲视频一区二区三区四区娇小视频在线观看视频 | 蜜桃传媒一区二区亚洲AV| www.蜜桃| 久久亚洲中文字幕乱码| а√在线中文网新版地址在线| AV口爆| 全国男人的天堂网站| H网站在线观看| 国产无码AV在线| 男人亚洲天堂| 五月激情六月丁香| 日韩美女视频19| 网址你懂的| 国产三级国产三级国产普通话| 亚洲欧美日韩不卡| 91天天操| 爆乳乱伦| 天天日夜夜草| 日本高清黄色视频| 中文字幕网站| 好吊视频一区二区三区| 精品少妇3p| 北条麻妃九九九精品视频免费观看| 中文资源在线观看| 日本一本草久p| 91热热| 男人天堂无码| 国产无遮挡又黄又爽又色学生软件| 久色性爱视频| 五月天婷婷色播| 成年网站| 在线免费观看a| 亚洲欧美日韩色图| 97国产精品视频| 久久黄色网| 成人性爱福利视频| 在线看一区二区三区| 尤物网站在线观看| 成人无码久久| 国产专区在线| 亚洲精品欧美| 色色网欧美| 在线日韩一区二区| 婷婷色中文网| jzzijzzij亚洲成熟少妇在线播放 黑人猛躁白人BBBBBBBBB | 一本无码中文字幕| 亚洲AV无码一区东京热久久| 精品人妻一区| 在线观看欧美日韩视频| 69堂在线观看| 男女黄色免费网站| 一本一本久久a久久精品牛牛影视| 日韩一卡二卡| 色猫av| 韩国午夜激情| 少妇AAA级久久久无码精品片| 在线视频A| AV无码免费一区二区三区不卡| 黄片免费视频在线观看| 日本在线免费观看| 99九九99九九九99九他書對| 人妻中文字幕av| 日韩区在线| 超碰最新在线| 秋霞午夜福利| 久久99精品国产.久久久久| AAA久久久| 91AV电影网| 日本高潮视频| 另类一区| 色婷婷亚洲色| 黄色A片免费| 日欧无码| 精品婷婷| 国产96在线亚洲| 一级aa视频| 四川美人搡BBw搡BBw| 91人人爱| 国产成人视频在线观看| 一级毛AA片| 综合久久视频| 超碰成人网| 在线中文av| 人妻人玩| 99r6热只有精品免费观看| 日韩第1页| 999免费视频| 欧美操| 国产一级AA大片毛片| 特级西西人体444www高清| 国产精品福利小视频| 国产suv精品一区二区6| 午夜操一操一级| av天堂资源在线| 日韩欧美操| 西西特级无码444www| 韩国色情中文字幕| 成人福利视频在线| 91三级电影| 亚洲视频综合| 日韩欧美视频一区国产欧美在线| 东北老女人性爱视频| 久久精品视频网站| 人妻综合网| 伊人春色AV| 国产黄片在线视频| 成年人视频在线免费观看| 大香蕉视频网| 久久人人网| 在线免费中文字幕| 国产棈品久久久久久久久久九秃| 中文字幕在线观看网站| 动漫日逼| 日韩精品一区在线| 中文字幕免费看| 青娱乐极品久久| av天堂一区| 日本毛片在线观看| 天天插天天干| 精品视频久久久久久| 日韩在线你懂的| av资源站| 亚洲无码精品视频| 九色无码| 国产麻豆精品成人毛片| 无码黑人| 国产91小视频| 国产亚洲色婷婷久久99精品| 久草新在线| 国外成人在线视频老鸭窝| 欧美高清另类| 中文字幕精品无码一区二区| 波多野结衣AV在线| 亚洲乱乱| 麻豆一区二区三区四区| 中文字幕无码在线视频| 亚洲日韩一区二区三区四区| 波多野结衣一级| 日韩A电影| 三级理论片| 91蝌蚪91九色| 日韩精品成人在线| 吴梦梦《女教师时间暂停》| 91精品人妻一区二区三区四区| 国产日产亚洲精品| 在线观看视频一区| 高清在线无码视频| 亚洲人成免费| 国产福利视频在线| 久久A级片| 日本高清无码在线观看| 黄片网站免费| 国产精品色情A级毛片| 中国黄色学生妹一级片| 欧美三P囗交做爰| 欧美射图| 99视频这里有精品| 97人人操| 色婷婷狠狠操| 8x8x黄色| 91人妻人人澡人人爽人人精品 | 人妻体内射精| 91视频www| 日韩精品在线播放| 全国男人的天堂网站| 三级片无码在线观看| 女人的天堂AV在线观看| 免费日韩黄色电影| 羽月希无码| 全部免费黄色视频| 欧美午夜爱爱| 国产1区2区| 在线观看亚州| 黄网站在线播放| 人妻精品| 少妇搡BBBB搡BBB搡18禁| 91久久国产综合久久91精品网站| 天天做| 一区二区三区无码精品| 精品一区二区三区四区视频 | 日韩av免费在线| 激情国产av| 日本一区二区三区免费看| 国产足交视频| 久久久久免费视频| 不卡无码av| 京东一热本色道久久爱| 欧美高清无码| 亚洲AV秘无码不卡在线观看| 波多野结衣视频在线| www五月天com| 激情免费视频| 三级A片| 色婷婷成人网| 日本爱爱免费视频|