精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Javascript函數(shù)聲明與遞歸調(diào)用

開(kāi)發(fā) 前端
Javascript的函數(shù)的聲明方式和調(diào)用方式已經(jīng)是令人厭倦的老生常談了,但有些東西就是這樣的,你來(lái)說(shuō)一遍然后我再說(shuō)一遍。每次看到書(shū)上或博客里寫的Javascript函數(shù)有四種調(diào)用方式,我就會(huì)想起孔乙己:茴字有四種寫法,你造嗎?

Javascript的函數(shù)的聲明方式和調(diào)用方式已經(jīng)是令人厭倦的老生常談了,但有些東西就是這樣的,你來(lái)說(shuō)一遍然后我再說(shuō)一遍。每次看到書(shū)上或博客里寫的Javascript函數(shù)有四種調(diào)用方式,我就會(huì)想起孔乙己:茴字有四種寫法,你造嗎?

盡管缺陷有一堆,但Javascript還是令人著迷的。Javascript眾多優(yōu)美的特性的核心,是作為***對(duì)象(first-class objects)的函數(shù)。函數(shù)就像其他普通對(duì)象一樣被創(chuàng)建、被分配給變量、作為參數(shù)被傳遞、作為返回值以及持有屬性和方法。函數(shù)作為***對(duì)象,賦予了Javascript強(qiáng)大的函數(shù)式編程能力,也帶來(lái)了不太容易控制的靈活性。

1、函數(shù)聲明

變量式聲明先創(chuàng)建一個(gè)匿名函數(shù),然后把它賦值給一個(gè)指定的變量:

  1. var f = function () { // function body }; 

通常我們不必關(guān)心等號(hào)右邊表達(dá)式的作用域是全局還是某個(gè)閉包內(nèi),因?yàn)樗荒芡ㄟ^(guò)等號(hào)左邊的變量f來(lái)引用,應(yīng)該關(guān)注的是變量f的作用域。如果f指向函數(shù)的引用被破壞(f = null),且函數(shù)沒(méi)有被賦值給任何其它變量或?qū)ο髮傩裕涿瘮?shù)會(huì)因?yàn)槭ニ幸枚焕厥諜C(jī)制銷毀。

也可以使用函數(shù)表達(dá)式創(chuàng)建函數(shù):

  1. function f() { // function body } 

與變量式不同的是,這種聲明方式會(huì)為函數(shù)的一個(gè)內(nèi)置屬性name賦值。同時(shí)把函數(shù)賦值給當(dāng)前作用域的一個(gè)同名變量。(函數(shù)的name屬性,configurable、enumerable和writable均為false)

  1. function f() { // function body }  
  2. console.log(f.name); // "f"  
  3. console.log(f); // f()  

Javascript變量有一個(gè)的特別之處,就是會(huì)把變量的聲明提前,表達(dá)式式的函數(shù)聲明,也會(huì)把整個(gè)函數(shù)的定義前置,因此你可以在函數(shù)定義之前使用它:

  1. console.log(f.name); // "f"  
  2. console.log(f); // f()  
  3. function f() { // function body }  

函數(shù)表達(dá)式的聲明會(huì)被提升到作用域頂層,試試下面的代碼,它們不是本文的重點(diǎn):

  1. var a = 0;  
  2. console.log(a); // 0 or a()?  
  3. function a () {}  

Crockford建議永遠(yuǎn)使用***種方式聲明函數(shù),他認(rèn)為第二種方式放寬了函數(shù)必須先聲明后使用的要求從而會(huì)導(dǎo)致混亂。(Crockford是一個(gè)類似于羅素口中用來(lái)比喻維特根斯坦的"有良心的藝術(shù)家"那樣的"有良心的程序員",這句話很拗口吧)

函數(shù)式聲明

  1. function f() {} 

看起來(lái)是

  1. var f = function f(){}; 

的簡(jiǎn)寫。

  1. var a = function b(){}; 

的表達(dá)式,創(chuàng)建一個(gè)函數(shù)并把內(nèi)置的name屬性賦值為"b",然后把這個(gè)函數(shù)賦值給變量a,你可以在外部使用a()來(lái)調(diào)用它,但卻不能使用b(),因?yàn)楹瘮?shù)已被賦值給a,所以不會(huì)再自動(dòng)創(chuàng)建一個(gè)變量b,除非你使用var b = a聲明一個(gè)變量b。當(dāng)然這個(gè)函數(shù)的name是"b"而不是"a"。

使用Function構(gòu)造函數(shù)也可用來(lái)創(chuàng)建函數(shù):

  1. var f = new Function("a,b,c","return a+b+c;"); 

這種方式其實(shí)是在全局作用域內(nèi)生成一個(gè)匿名函數(shù),并把它賦值給變量f。

2、遞歸調(diào)用

遞歸被用來(lái)簡(jiǎn)化許多問(wèn)題,這需要在一個(gè)函數(shù)體中調(diào)用它自己:

  1. // 一個(gè)簡(jiǎn)單的階乘函數(shù)  
  2. var f = function (x) {  
  3.     if (x === 1) {  
  4.         return 1;  
  5.     } else {  
  6.         return x * f(x - 1);  
  7.     }  
  8. };  

Javascript中函數(shù)的巨大靈活性,導(dǎo)致在遞歸時(shí)使用函數(shù)名遇到困難,對(duì)于上面的變量式聲明,f是一個(gè)變量,所以它的值很容易被替換:

  1. var fn = f;  
  2. f = function () {};  

函數(shù)是個(gè)值,它被賦給fn,我們期待使用fn(5)可以計(jì)算出一個(gè)數(shù)值,但是由于函數(shù)內(nèi)部依然引用的是變量f,于是它不能正常工作了。

函數(shù)式的聲明看起來(lái)好些,但很可惜:

  1. function f(x) {  
  2.     if (x === 1) {  
  3.         return 1;  
  4.     } else {  
  5.         return x * f(x - 1);  
  6.     }  
  7. }  
  8. var fn = f;  
  9. f = function () {}; // may been warning by browser  
  10. fn(5); // NaN  

看起來(lái),一旦我們定義了一個(gè)遞歸函數(shù),便須注意不要輕易改變變量的名字。

上面談?wù)摰亩际呛瘮?shù)式調(diào)用,函數(shù)還有其它調(diào)用方式,比如當(dāng)作對(duì)象方法調(diào)用。

我們常常這樣聲明對(duì)象:

  1. var obj1 = {  
  2.     num : 5,  
  3.     fac : function (x) {  
  4.         // function body  
  5.     }  
  6. };  

聲明一個(gè)匿名函數(shù)并把它賦值給對(duì)象的屬性(fac)。

如果我們想要在這里寫一個(gè)遞歸,就要引用屬性本身:

  1. var obj1 = {  
  2.     num : 5,  
  3.     fac : function (x) {  
  4.         if (x === 1) {  
  5.             return 1;  
  6.         } else {  
  7.             return x * obj1.fac(x - 1);  
  8.         }  
  9.     }  
  10. };  

當(dāng)然,它也會(huì)遭遇和函數(shù)調(diào)用方式一樣的問(wèn)題:

  1. var obj2 = {fac: obj1.fac};  
  2. obj1 = {};  
  3. obj2.fac(5); // Sadness  

方法被賦值給obj2的fac屬性后,內(nèi)部依然要引用obj1.fac,于是…失敗了。

換一種方式會(huì)有所改進(jìn):

  1. var obj1 = {  
  2.      num : 5,  
  3.      fac : function (x) {  
  4.         if (x === 1) {  
  5.             return 1;  
  6.         } else {  
  7.             return x * this.fac(x - 1);  
  8.         }  
  9.     }  
  10. };  
  11. var obj2 = {fac: obj1.fac};  
  12. obj1 = {};  
  13. obj2.fac(5); // ok  

通過(guò)this關(guān)鍵字獲取函數(shù)執(zhí)行時(shí)的context中的屬性,這樣執(zhí)行obj2.fac時(shí),函數(shù)內(nèi)部便會(huì)引用obj2的fac屬性。

可是函數(shù)還可以被任意修改context來(lái)調(diào)用,那就是***的call和apply:

  1. obj3 = {};  
  2. obj1.fac.call(obj3, 5); // dead again  

于是遞歸函數(shù)又不能正常工作了。

我們應(yīng)該試著解決這種問(wèn)題,還記得前面提到的一種函數(shù)聲明的方式嗎?

  1. var a = function b(){};  

這種聲明方式叫做內(nèi)聯(lián)函數(shù)(inline function),雖然在函數(shù)外沒(méi)有聲明變量b,但是在函數(shù)內(nèi)部,是可以使用b()來(lái)調(diào)用自己的,于是

  1. var fn = function f(x) {  
  2.     // try if you write "var f = 0;" here  
  3.     if (x === 1) {  
  4.         return 1;  
  5.     } else {  
  6.         return x * f(x - 1);  
  7.     }  
  8. };  
  9. var fn2 = fn;  
  10. fn = null;  
  11. fn2(5); // OK  
  1. // here show the difference between "var f = function f() {}" and "function f() {}"  
  2. var f = function f(x) {  
  3.     if (x === 1) {  
  4.         return 1;  
  5.     } else {  
  6.         return x * f(x - 1);  
  7.     }  
  8. };  
  9. var fn2 = f;  
  10. f = null;  
  11. fn2(5); // OK  
  1. var obj1 = {  
  2.     num : 5,  
  3.     fac : function f(x) {  
  4.         if (x === 1) {  
  5.             return 1;  
  6.         } else {  
  7.             return x * f(x - 1);  
  8.         }  
  9.     }  
  10. };  
  11. var obj2 = {fac: obj1.fac};  
  12. obj1 = {};  
  13. obj2.fac(5); // ok  
  14.  
  15. var obj3 = {};  
  16. obj1.fac.call(obj3, 5); // ok  

就這樣,我們有了一個(gè)可以在內(nèi)部使用的名字,而不用擔(dān)心遞歸函數(shù)被賦值給誰(shuí)以及以何種方式被調(diào)用。

Javascript函數(shù)內(nèi)部的arguments對(duì)象,有一個(gè)callee屬性,指向的是函數(shù)本身。因此也可以使用arguments.callee在內(nèi)部調(diào)用函數(shù):

  1. function f(x) {  
  2.     if (x === 1) {  
  3.         return 1;  
  4.     } else {  
  5.         return x * arguments.callee(x - 1);  
  6.     }  
  7. }  

但arguments.callee是一個(gè)已經(jīng)準(zhǔn)備被棄用的屬性,很可能會(huì)在未來(lái)的ECMAscript版本中消失,在ECMAscript 5中"use strict"時(shí),不能使用arguments.callee。

***一個(gè)建議是:如果要聲明一個(gè)遞歸函數(shù),請(qǐng)慎用new Function這種方式,F(xiàn)unction構(gòu)造函數(shù)創(chuàng)建的函數(shù)在每次被調(diào)用時(shí),都會(huì)重新編譯出一個(gè)函數(shù),遞歸調(diào)用會(huì)引發(fā)性能問(wèn)題——你會(huì)發(fā)現(xiàn)你的內(nèi)存很快就被耗光了。

原文鏈接:http://my.oschina.net/JackSparrow/blog/222221

責(zé)任編輯:林師授 來(lái)源: oschina
相關(guān)推薦

2023-12-04 07:09:53

函數(shù)遞歸python

2011-05-30 16:11:46

Javascript

2020-03-09 17:18:47

JavaScript技術(shù)函數(shù)

2009-07-31 14:26:38

JavaScript函C#函數(shù)

2024-06-25 15:31:21

2016-09-06 20:46:53

JavaScript遞歸與數(shù)列Web

2017-08-01 00:19:15

Javascript函數(shù)函數(shù)聲明

2012-03-27 10:08:08

JavaScript

2022-11-11 10:23:04

2009-03-13 09:39:34

JavaScript函數(shù)調(diào)用規(guī)則

2009-08-31 09:21:38

JavaScript調(diào)

2010-07-30 12:56:02

Flex調(diào)用JavaS

2023-02-01 08:11:40

系統(tǒng)調(diào)用函數(shù)

2024-01-23 11:21:24

2022-01-04 19:21:04

函數(shù)TypeScript重載

2024-03-04 22:35:07

Currying類型函數(shù)

2009-11-27 16:20:22

PHP遞歸調(diào)用

2010-10-27 13:55:01

memoization遞歸JavaScript

2010-01-05 16:12:55

Javascript匿

2023-10-26 11:39:54

Linux系統(tǒng)CPU
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产精品人人爽人人爽| 国产欧美一区二区在线播放| 色屁屁草草影院ccyy.com| 992tv国产精品成人影院| 国产精品嫩草久久久久| 亚洲a在线观看| 粉嫩av一区二区三区天美传媒| 一级片视频免费| 伊人成人网在线看| 国产一区二区动漫| 日本少妇一级片| 女厕盗摄一区二区三区| 国产精品久久久久影视| 国产伦精品一区二区三区| 日韩精品一区二区亚洲av观看| 亚洲高清资源在线观看| 日韩精品视频免费专区在线播放| 国产精品久久久毛片| 国产99在线观看| 国产午夜精品一区二区三区视频| 97影院在线午夜| 无码久久精品国产亚洲av影片| 久久久久美女| 亚洲性xxxx| 国产美女视频免费观看下载软件| 日韩三区四区| 欧美性xxxx极品hd欧美风情| 潘金莲一级淫片aaaaa免费看| 青青草在线视频免费观看| 国产盗摄精品一区二区三区在线| 国产精品福利在线| 99视频在线看| 欧美日韩一区二区三区四区在线观看 | 公侵犯人妻一区二区三区| 久久久精品区| 欧美日韩一二区| 日日碰狠狠躁久久躁婷婷| xxx在线免费观看| 亚洲另类一区二区| 在线丝袜欧美日韩制服| 成人性爱视频在线观看| 久久午夜免费电影| 精品国产综合久久| 狠狠综合久久av一区二区| 国产一区二区视频在线| 国产日韩欧美电影在线观看| 久久久精品毛片| 亚洲欧美成人综合| 6080yy精品一区二区三区| 国产一级特黄视频| 欧美三级乱码| 欧美第一黄色网| 青青草原国产视频| 欧美三区视频| 欧美极品少妇xxxxⅹ免费视频| 欧美黑人性猛交xxx| 国产影视一区| 在线观看日韩av| 纪美影视在线观看电视版使用方法| 亚洲精品aaaaa| 国产亚洲欧美aaaa| 国产精品久久免费观看| 欧美成人精品一区二区三区在线看| 日韩国产精品一区| 欧洲女同同性吃奶| 日韩久久电影| 久久久精品在线观看| 国产激情无码一区二区三区| 欧美成人自拍| 欧美国产日韩一区| 亚洲精品国产精品乱码| 羞羞答答国产精品www一本| 日产日韩在线亚洲欧美| 亚洲特级黄色片| 国产一二精品视频| 国产女主播一区二区| 日韩欧美在线观看一区二区| 久久久精品欧美丰满| 一区二区三区四区欧美| 在线观看免费视频你懂的| 性久久久久久久久久久久 | 久久精品盗摄| 国产精品日韩在线一区| 国产强被迫伦姧在线观看无码| 国产成人av一区二区三区在线观看| 国产麻豆一区二区三区在线观看| 欧美一区二区三区少妇| 国产精品久久久久aaaa| 国产在线视频综合| 亚洲承认视频| 欧美一区二区三区播放老司机| 熟妇高潮一区二区| 青青草成人影院| 久久99久久99精品中文字幕 | 人妻体内射精一区二区| 日韩毛片视频| 韩剧1988免费观看全集| 亚洲综合精品国产一区二区三区 | 欧美视频在线观看免费| 一级黄色特级片| 超碰成人免费| 影音先锋日韩有码| 国产一卡二卡在线播放| 免费人成精品欧美精品| www.久久爱.cn| 成年人在线观看网站| 亚洲国产一区在线观看| 成人在线免费播放视频| 视频成人永久免费视频| 中文字幕在线精品| 国产视频91在线| 国产精品一级二级三级| 日韩av一区二区三区美女毛片| 国产乱色在线观看| 色婷婷久久一区二区三区麻豆| 一卡二卡三卡四卡五卡| 操欧美老女人| 91av在线播放视频| www.色日本| 国产精品久久久久久久蜜臀| 国产免费观看高清视频| 蜜桃精品视频| 日韩综合中文字幕| 国产精品免费无遮挡无码永久视频| 国产成人一级电影| 正在播放精油久久| 78精品国产综合久久香蕉| 亚洲精品按摩视频| 国产一国产二国产三| 国产精品一区二区久久不卡 | 欧洲熟妇的性久久久久久| 999国产精品视频| 国产精品91视频| 免费在线国产| 欧美日韩亚洲一区二区| 黄色av电影网站| 欧美日韩一区二区三区四区在线观看 | 精品无码黑人又粗又大又长| 久久er99热精品一区二区| 日本视频一区在线观看| 免费电影日韩网站| 日韩电影中文字幕在线| 日本黄色片视频| 9色porny自拍视频一区二区| 青春草国产视频| 麻豆一二三区精品蜜桃| 九九九久久久久久| 国产xxxx在线观看| 亚洲精品国产无天堂网2021| 午夜激情影院在线观看| 亚洲草久电影| 亚洲精品免费网站| 性欧美videoshd高清| 日韩一二三四区| 手机av在线网| 第一会所亚洲原创| 91欧美精品午夜性色福利在线 | 国产精品伦理一区| 中文字幕中文在线不卡住| 最新av免费在线观看| 久久精品青草| 99精品国产高清一区二区| 青青青国内视频在线观看软件| 欧美成人欧美edvon| 精品一区在线视频| 91免费精品国自产拍在线不卡 | 久久电影网站中文字幕 | 激情综合亚洲| 精品一卡二卡三卡四卡日本乱码 | 国产精品视频网站| 毛片av在线| 精品国产一区二区在线观看| 日本一级一片免费视频| 国产日产亚洲精品系列| 手机免费av片| 亚洲激情女人| 日韩福利二区| 欧美国产亚洲精品| 欧美在线视频在线播放完整版免费观看| 欧美成人综合在线| 欧美男生操女生| 久久午夜无码鲁丝片| 91啪九色porn原创视频在线观看| 色综合色综合色综合色综合| 综合久久99| 欧美精品亚洲精品| 2020国产精品小视频| 国内精品美女av在线播放| 精品av中文字幕在线毛片 | 一个色综合av| 男人天堂av电影| 国产在线精品一区二区不卡了| 黄色一级视频在线播放| 电影天堂国产精品| 欧美成人一区在线| 日本私人网站在线观看| 69成人精品免费视频| 亚洲 欧美 日韩 综合| 国产精品久久久久aaaa樱花| 精品国产人妻一区二区三区| 久久av老司机精品网站导航| 成熟丰满熟妇高潮xxxxx视频| 成人在线免费视频观看| 国产私拍一区| 欧美日韩黄网站| 国产suv精品一区二区| 色呦呦在线资源| 中文字幕精品—区二区| 天堂在线观看视频| 日韩一级片在线观看| 国产主播第一页| 亚洲444eee在线观看| 在线观看美女av| 欧美激情综合五月色丁香小说| 2018国产精品| 国产真实乱偷精品视频免| 黑森林福利视频导航| 国产一区二区三区自拍 | 亚洲激情久久| 欧美日韩一区二区视频在线观看| 日韩在线观看中文字幕| 国产精品美女久久久久av超清| 3344国产永久在线观看视频| 欧美成人激情视频| 毛片激情在线观看| 最近的2019中文字幕免费一页| 亚洲人妻一区二区三区| 欧美v亚洲v综合ⅴ国产v| 国产精品高潮呻吟av| 欧美亚洲国产一区二区三区va| 毛片基地在线观看| 激情久久av一区av二区av三区| 特级片在线观看| 亚洲男女毛片无遮挡| 国产在线免费看| 国产精品天天摸av网| 蜜桃av乱码一区二区三区| 久久亚洲精精品中文字幕早川悠里| 亚洲婷婷在线观看| 国产+成+人+亚洲欧洲自线| 香蕉视频xxxx| 国产高清不卡一区| 欧美污在线观看| 国产麻豆精品theporn| 韩国三级丰满少妇高潮| 国产综合色视频| 亚洲精品在线网址| 国产乱子伦一区二区三区国色天香| 污网站在线免费| 九色porny丨国产精品| 亚洲欧美国产中文| 韩国理伦片一区二区三区在线播放 | 日本不卡免费在线视频| 免费看黄色一级大片| 麻豆精品国产传媒mv男同| 亚洲这里只有精品| 精品亚洲免费视频| 中文字幕一二三区| 成人黄色在线看| 国产精品嫩草av| 久久九九久精品国产免费直播| 色综合99久久久无码国产精品| 国产人成一区二区三区影院| 国产黄色片在线| 亚洲码国产岛国毛片在线| 一区二区三区免费高清视频| 亚洲妇女屁股眼交7| av大全在线观看| 91福利在线播放| 国产一区二区三区四区视频| 7777精品伊人久久久大香线蕉最新版| 国产三级三级在线观看| 精品精品国产高清a毛片牛牛 | 精品国内亚洲在观看18黄| av免费在线免费| 午夜精品久久久久久久99黑人| 日韩理论视频| 国产美女精品视频免费观看| 日韩免费精品| 久久久久欧美| 91亚洲自偷观看高清| 久操手机在线视频| 免费亚洲网站| 色18美女社区| av一区二区久久| 波多野结衣家庭教师在线观看| 亚洲男人天堂av| 国产手机在线视频| 欧美日韩高清不卡| 亚洲精品97久久中文字幕| 精品调教chinesegay| 日本a在线播放| 91精品国产色综合久久不卡98口| 成人做爰视频www| 国产精品传媒毛片三区| 欧美理论在线播放| 日韩欧美精品免费| 麻豆成人免费电影| xxxx黄色片| 亚洲男人的天堂一区二区| 4438国产精品一区二区| 日韩一区二区三区在线视频| 男人天堂资源在线| 欧美大学生性色视频| 福利一区视频| 久久99精品久久久久久青青日本| 欧美成免费一区二区视频| 黄色动漫在线免费看| 国产精品自拍网站| 毛片视频免费播放| 欧美视频在线视频| 成人乱码一区二区三区| 色yeye香蕉凹凸一区二区av| 天堂电影一区| 国产经品一区二区| 亚洲国产精品成人| 久久久久国产一区| 2021中文字幕一区亚洲| 国产性猛交普通话对白| 欧美放荡的少妇| 成人福利在线| 日韩av电影手机在线| 精品亚洲精品| 日韩欧美猛交xxxxx无码| 精品亚洲国产成人av制服丝袜 | 6080yy精品一区二区三区| 清纯唯美激情亚洲| 亚洲一区二区精品在线观看| 丝袜美腿亚洲色图| 丰满少妇一区二区三区| 亚洲成人在线免费| 精品国自产在线观看| 久久久91精品国产| 五月天色综合| 亚洲美女搞黄| 麻豆传媒一区二区三区| 特级西西人体高清大胆| 欧美日韩中字一区| 成年人视频网站在线| 国产精品极品美女粉嫩高清在线| 欧美色图婷婷| 欧美大片在线播放| 99视频一区二区三区| 日韩手机在线观看| 精品久久久久av影院 | 国产成人鲁鲁免费视频a| 人体久久天天| 欧美激情成人网| 国产欧美日本一区视频| 波多野结衣视频观看| 在线成人免费网站| 欧美一级做a| 中文字幕一区二区中文字幕| 蜜桃av一区二区在线观看 | 天天躁日日躁狠狠躁喷水| 隔壁老王国产在线精品| 色婷婷狠狠五月综合天色拍| 欧美精品色婷婷五月综合| 久久久一区二区| 自拍偷拍精品视频| 日韩中文字幕国产| 日本在线视频一区二区三区| 韩日视频在线观看| 91免费看`日韩一区二区| 亚洲中文字幕无码爆乳av| 综合网日日天干夜夜久久| 91精品一久久香蕉国产线看观看| 精品一区二区三区毛片| 国产成人在线色| 丁香六月婷婷综合| 中文字幕日韩欧美精品在线观看| 青青伊人久久| 69精品丰满人妻无码视频a片| 不卡电影一区二区三区| 在线永久看片免费的视频| 色偷偷91综合久久噜噜| 我要色综合中文字幕| 免费无遮挡无码永久视频| 国产欧美日韩另类视频免费观看 | 成人教育av| 一区二区不卡在线视频 午夜欧美不卡'| 国产综合久久久久久久久久久久| 国产在线观看免费视频今夜| 亚洲人午夜精品| 国产一区二区三区免费在线 | 国产美女久久久久久| 精品国产91久久久久久久妲己| 中文日产幕无线码一区二区| 亚洲资源在线网| 成人v精品蜜桃久久一区| 亚洲图片欧美日韩| 九九热这里只有精品免费看| 亚瑟一区二区三区四区| 中文字幕第一页在线视频| 欧美日韩免费网站| 99久久精品免费观看国产| 久久青青草综合| 国产综合成人久久大片91| 精品免费囯产一区二区三区| 久久久精品一区二区三区|