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

聊聊從Vue.js源碼中我學(xué)到了精妙方法

開發(fā) 前端
如果我們的應(yīng)用需要創(chuàng)建很多新的對象,并且這些對象還有許多的方法,為了節(jié)省內(nèi)存,我們建議把這些方法都定義在構(gòu)造函數(shù)的 prototype 屬性上。當(dāng)然,在某些情況下,我們需要將某些方法定義在構(gòu)造函數(shù)中,這種情況一般是因?yàn)槲覀冃枰L問構(gòu)造函數(shù)內(nèi)部的私有變量。

[[393248]]

話不多說,趕快試試尤大大教給我們的這幾個(gè)精妙方法吧!在工作中肯定會用得到。

立即執(zhí)行函數(shù)

頁面加載完成后只執(zhí)行一次的設(shè)置函數(shù)。

  1. (function (a, b) { 
  2.   console.log(a, b); // 1,2 
  3. })(1, 2); 

通常,全局變量被作為一個(gè)參數(shù)傳遞給立即執(zhí)行參數(shù),這樣它在函數(shù)內(nèi)部不使用window也可以被訪問到。

  1. (function (global) { 
  2.   console.log(global); // Window對象 
  3. })(this); 

多層嵌套三目運(yùn)算符

三目運(yùn)算符嵌套的寫法,使得代碼可讀性差,簡單業(yè)務(wù)場景下可以試著使用。

  1. var a = 1; 
  2. var b = 0; 
  3. a == 1 ? (b == 2 ? (b = 3) : (b = 1)) : ""
  4. console.log(b); // 1 

凍結(jié)對象

不可對指定對象增刪改。

  1. var emptyObject = Object.freeze({ 
  2.   key"1"
  3. }); 
  4. emptyObject.name = "maomin"
  5. delete emptyObject.key
  6. emptyObject.key = "2"
  7. console.log(emptyObject); 

密封對象

只能對指定對象進(jìn)行更改,不可進(jìn)行增加刪除操作。

  1. var sealObject = Object.seal({ 
  2.   key: 3, 
  3. }); 
  4. sealObject.name = "maomin"
  5. delete sealObject.key
  6. sealObject.key = 4; 
  7. console.log(sealObject); // 4 

檢查是否是原始值

  1. function isPrimitive(value) { 
  2.   return ( 
  3.     typeof value === "string" || 
  4.     typeof value === "number" || 
  5.     // $flow-disable-line 
  6.     typeof value === "symbol" || 
  7.     typeof value === "boolean" 
  8.   ); 

快速檢測是否是對象

當(dāng)我們知道原始值時(shí),它主要用于將對象與原始值區(qū)分開來。

  1. function isObject(obj) { 
  2.   return obj !== null && typeof obj === "object"
  3. console.log(isObject(true)); //false 

檢測目標(biāo)類型

  1. var _toString = Object.prototype.toString; 
  2.  
  3. function toRawType(value) { 
  4.   return _toString.call(value).slice(8, -1); 
  5. console.log(toRawType([])); // Array 

檢查目標(biāo)是否是有效的數(shù)組索引

  1. function isValidArrayIndex(val) { 
  2.   var n = parseFloat(String(val)); 
  3.   return n >= 0 && Math.floor(n) === n && isFinite(val); 

檢測是否是Promise對象

  1. function isDef(v) { 
  2.   return v !== undefined && v !== null
  3. function isPromise(val) { 
  4.   return ( 
  5.     isDef(val) && 
  6.     typeof val.then === "function" && 
  7.     typeof val.catch === "function" 
  8.   ); 
  9. var promiseObj = new Promise(function (resolve, reject) { 
  10.   // 一段耗時(shí)的異步操作 
  11.   resolve("成功"); // 數(shù)據(jù)處理完成 
  12.   // reject('失敗') // 數(shù)據(jù)處理出錯 
  13. }).then
  14.   (res) => { 
  15.     console.log(res); 
  16.   }, // 成功 
  17.   (err) => { 
  18.     console.log(err); 
  19.   } // 失敗 
  20. ); 
  21. console.log(isPromise(promiseObj)); // true 

目標(biāo)轉(zhuǎn)換為字符串

  1. var _toString = Object.prototype.toString; 
  2. function isPlainObject(obj) { 
  3.   return _toString.call(obj) === "[object Object]"
  4. function toString(val) { 
  5.   return val == null 
  6.     ? "" 
  7.     : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) 
  8.     ? JSON.stringify(val, null, 2) 
  9.     : String(val); 
  10. console.log(toString({ name: 1 })); // {"name": 1} 

轉(zhuǎn)化為數(shù)字

將輸入值轉(zhuǎn)換為數(shù)字以便持久化。如果轉(zhuǎn)換失敗,則返回原始字符串。

  1. function toNumber(val) { 
  2.   var n = parseFloat(val); 
  3.   return isNaN(n) ? val : n; 

檢測key是否在創(chuàng)建的Map對象內(nèi)

  1. function makeMap(str, expectsLowerCase) { 
  2.   var map = Object.create(null); 
  3.   var list = str.split(","); 
  4.   for (var i = 0; i < list.length; i++) { 
  5.     map[list[i]] = true
  6.   } 
  7.   return expectsLowerCase 
  8.     ? function (val) { 
  9.         return map[val.toLowerCase()]; 
  10.       } 
  11.     : function (val) { 
  12.         return map[val]; 
  13.       }; 
  14. var isBuiltInTag = makeMap("slot,component"true); 
  15. console.log(isBuiltInTag("component")); // true 

刪除簡單數(shù)組中某一項(xiàng)

  1. function remove(arr, item) { 
  2.   if (arr.length) { 
  3.     var index = arr.indexOf(item); 
  4.     if (index > -1) { 
  5.       return arr.splice(index, 1); 
  6.     } 
  7.   } 
  8. console.log(remove([1, 2], 1)); // [1] 

檢測對象中是否有指定key

  1. var hasOwnProperty = Object.prototype.hasOwnProperty; 
  2. function hasOwn(obj, key) { 
  3.   return hasOwnProperty.call(obj, key); 
  4. console.log(hasOwn({ name: 1 }, "name")); //true 

將類數(shù)組對象轉(zhuǎn)化為真實(shí)數(shù)組

  1. function toArray(list, start) { 
  2.   start = start || 0; 
  3.   var i = list.length - start; 
  4.   var ret = new Array(i); 
  5.   while (i--) { 
  6.     ret[i] = list[i + start]; 
  7.   } 
  8.   return ret; 
  9. console.log(toArray({ 0: 42, 1: 52, 2: 63, length: 3 })); // [42, 52, 63] 

將屬性混合到目標(biāo)對象中

  1. function extend(to, _from) { 
  2.   for (var key in _from) { 
  3.     to[key] = _from[key]; 
  4.   } 
  5.   return to
  6. console.log(extend({ name: 1 }, { name1: 2 })); // {name:1,name1:2} 

將對象數(shù)組合并為單個(gè)對象

  1. function extend(to, _from) { 
  2.   for (var key in _from) { 
  3.     to[key] = _from[key]; 
  4.   } 
  5.   return to
  6. function toObject(arr) { 
  7.   var res = {}; 
  8.   for (var i = 0; i < arr.length; i++) { 
  9.     if (arr[i]) { 
  10.       extend(res, arr[i]); 
  11.     } 
  12.   } 
  13.   return res; 
  14. console.log(toObject([{ name: 1 }, { name: 1 }, { name: 2 }, { name1: 3 }])); // {name: 2, name1: 3} 

檢測指定項(xiàng)在數(shù)組(簡單數(shù)組、數(shù)組對象)中的索引

  1. function isObject(obj) { 
  2.   return obj !== null && typeof obj === "object"
  3. function looseEqual(a, b) { 
  4.   if (a === b) { 
  5.     return true
  6.   } 
  7.   var isObjectA = isObject(a); 
  8.   var isObjectB = isObject(b); 
  9.   if (isObjectA && isObjectB) { 
  10.     try { 
  11.       var isArrayA = Array.isArray(a); 
  12.       var isArrayB = Array.isArray(b); 
  13.       if (isArrayA && isArrayB) { 
  14.         return ( 
  15.           a.length === b.length && 
  16.           a.every(function (e, i) { 
  17.             return looseEqual(e, b[i]); 
  18.           }) 
  19.         ); 
  20.       } else if (a instanceof Date && b instanceof Date) { 
  21.         return a.getTime() === b.getTime(); 
  22.       } else if (!isArrayA && !isArrayB) { 
  23.         var keysA = Object.keys(a); 
  24.         var keysB = Object.keys(b); 
  25.         return ( 
  26.           keysA.length === keysB.length && 
  27.           keysA.every(function (key) { 
  28.             return looseEqual(a[key], b[key]); 
  29.           }) 
  30.         ); 
  31.       } else { 
  32.         /* istanbul ignore next */ 
  33.         return false
  34.       } 
  35.     } catch (e) { 
  36.       /* istanbul ignore next */ 
  37.       return false
  38.     } 
  39.   } else if (!isObjectA && !isObjectB) { 
  40.     return String(a) === String(b); 
  41.   } else { 
  42.     return false
  43.   } 
  44.  
  45. function looseIndexOf(arr, val) { 
  46.   for (var i = 0; i < arr.length; i++) { 
  47.     if (looseEqual(arr[i], val)) { 
  48.       return i; 
  49.     } 
  50.   } 
  51.   return -1; 
  52. console.log(looseIndexOf([{ name: 1 }, { name: 2 }], 4)); // -1 
  53. console.log(looseIndexOf([{ name: 1 }, { name: 2 }], { name: 1 })); // 0 

確保函數(shù)只調(diào)用一次

  1. function once(fn) { 
  2.   var called = false
  3.   return function () { 
  4.     if (!called) { 
  5.       called = true
  6.       fn.apply(this, arguments); 
  7.     } 
  8.   }; 
  9. var callOnce = once(function () { 
  10.   console.log("javascript"); 
  11. }); 
  12. callOnce(); // javascript 
  13. callOnce(); 

定義對象屬性

如果你想禁止一個(gè)對象添加新屬性并且保留已有屬性,就可以使用Object.preventExtensions(obj)。

  1. function def(obj, key, val, enumerable) { 
  2.   Object.defineProperty(obj, key, { 
  3.     value: val, // 對象定義屬性 
  4.     enumerable: !!enumerable, // 描述屬性是否會出現(xiàn)在for in 或者 Object.keys()的遍歷中 
  5.     writable: true, // 是否可寫 
  6.     configurable: true, // 是否重新定義或者刪除 
  7.   }); 
  8. var obj = { 
  9.   name: 1, 
  10. }; 
  11. def(obj, "name1", 2, true); 
  12. obj.name1 = 3; 
  13. console.log(obj); // {name: 1, name1: 3} 

瀏覽器環(huán)境嗅探

  1. var inBrowser = typeof window !== "undefined"
  2. var inWeex = typeof WXEnvironment !== "undefined" && !!WXEnvironment.platform; 
  3. var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); 
  4. var UA = inBrowser && window.navigator.userAgent.toLowerCase(); 
  5.  
  6. var isIE = UA && /msie|trident/.test(UA); 
  7. var isIE9 = UA && UA.indexOf("msie 9.0") > 0; 
  8. var isEdge = UA && UA.indexOf("edge/") > 0; 
  9. var isAndroid = (UA && UA.indexOf("android") > 0) || weexPlatform === "android"
  10. var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || weexPlatform === "ios"
  11. var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; 
  12. var isPhantomJS = UA && /phantomjs/.test(UA); 
  13. var isFF = UA && UA.match(/firefox\/(\d+)/); 

JS構(gòu)造函數(shù)內(nèi)的方法與構(gòu)造函數(shù)prototype屬性上方法的對比

定義在構(gòu)造函數(shù)內(nèi)部的方法,會在它的每一個(gè)實(shí)例上都克隆這個(gè)方法;定義在構(gòu)造函數(shù)的 prototype 屬性上的方法會讓它的所有示例都共享這個(gè)方法,但是不會在每個(gè)實(shí)例的內(nèi)部重新定義這個(gè)方法。如果我們的應(yīng)用需要創(chuàng)建很多新的對象,并且這些對象還有許多的方法,為了節(jié)省內(nèi)存,我們建議把這些方法都定義在構(gòu)造函數(shù)的 prototype 屬性上。當(dāng)然,在某些情況下,我們需要將某些方法定義在構(gòu)造函數(shù)中,這種情況一般是因?yàn)槲覀冃枰L問構(gòu)造函數(shù)內(nèi)部的私有變量。

  1. function A() { 
  2.   this.say = function () { 
  3.     console.log(1); 
  4.   }; 
  5. var a = new A(); 
  6. a.say(); 
  7. function B() {} 
  8. B.prototype.say = function () { 
  9.   console.log(2); 
  10. }; 
  11. var b = new B(); 
  12. b.say(); 
  13. var c = new B(); 
  14. c.say(); 

獲取標(biāo)簽內(nèi)容(包含標(biāo)簽)

  1. function getOuterHTML(el) { 
  2.   if (el.outerHTML) { 
  3.     return el.outerHTML; 
  4.   } else { 
  5.     var container = document.createElement("div"); 
  6.     container.appendChild(el.cloneNode(true)); 
  7.     return container.innerHTML; 
  8.   } 

字符串hash值

  1. function hash(str) { 
  2.   var hash = 5381; 
  3.   var i = str.length; 
  4.   while (i) { 
  5.     hash = (hash * 33) ^ str.charCodeAt(--i); 
  6.   } 
  7.   return hash >>> 0; 
  8. console.log(hash("222sd"));// 164533792 

 

責(zé)任編輯:武曉燕 來源: maomin9761
相關(guān)推薦

2021-01-02 09:48:13

函數(shù)運(yùn)算js

2022-03-27 09:06:04

React類型定義前端

2021-03-09 09:55:02

Vuejs前端代碼

2024-05-13 08:04:26

Vue.jsWeb應(yīng)用程序

2021-05-08 06:14:28

Vue.js片段開發(fā)

2016-01-18 10:06:05

編程

2020-02-22 15:01:51

后端前端開發(fā)

2020-04-01 08:40:44

Vue.jsweb開發(fā)

2016-09-21 13:32:13

JavascriptWeb前端

2021-03-13 11:23:51

源碼邏輯框架

2020-09-25 06:32:25

前端

2021-10-25 05:43:40

前端技術(shù)編程

2020-12-31 10:47:03

開發(fā)Vuejs技術(shù)

2020-06-01 14:02:25

Vue.js框架模板

2016-09-21 12:56:31

JavascriptWeb前端

2020-10-27 08:07:17

Vue.js

2020-06-14 15:09:00

JavaScript開發(fā)技術(shù)

2023-04-26 22:52:19

視覺人臉檢測人臉對齊

2024-04-12 08:54:13

從庫數(shù)據(jù)庫應(yīng)用

2021-07-28 07:01:09

薅羊毛架構(gòu)Vue+SSR
點(diǎn)贊
收藏

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

日韩欧美精品一区二区综合视频| 亚欧在线观看视频| 亚洲欧美网站在线观看| 日韩欧美一区二区免费| 国产深夜男女无套内射| 国产在线一在线二| 精品一区二区三区免费观看| 久久久久国产精品www| 美女100%无挡| 久久九九精品视频| 岛国精品视频在线播放| 一级做a爰片久久| 日本人妻熟妇久久久久久| 日本特黄久久久高潮| 欧美日韩高清在线观看| 亚洲永久精品ww.7491进入| 日韩电影精品| 精品久久久久久久中文字幕 | 亚洲成a人v欧美综合天堂下载 | 成人xxxx视频| 国产69精品久久久久久久久久| 成人在线免费小视频| 精品少妇一区二区三区在线播放| 一区二区三区入口| 不卡专区在线| 亚洲三级视频在线观看| 日韩免费一区二区三区| 日韩中文字幕免费在线观看| 久久99日本精品| 欧美中文字幕在线视频| 免费在线观看av网址| 日韩在线观看电影完整版高清免费悬疑悬疑| 日韩精品一区二区三区视频播放| 性猛交ⅹ×××乱大交| 亚洲天堂av在线| 亚洲电影中文字幕在线观看| 影音先锋成人资源网站| av黄色在线观看| 久久久久久亚洲综合影院红桃| 国产精品久久久久免费| 亚洲av无码乱码国产精品| 精品在线观看免费| 国产精品欧美日韩久久| 日韩三级一区二区| 一本色道久久综合亚洲精品高清 | 欧美一级黄色片| 亚洲自拍欧美色图| 亚洲综合视频在线播放| 日韩成人精品视频| 日韩av快播网址| 国产专区第一页| 国产亚洲激情| 4438全国成人免费| 五月婷婷激情网| 一本色道久久综合亚洲精品不卡| 韩国19禁主播vip福利视频| 日本黄色小说视频| 欧美久久一区| 欧美丰满少妇xxxxx| 久久久久亚洲AV| 国内综合精品午夜久久资源| 欧美大片免费观看| 久草网在线观看| 在线欧美不卡| 欧美中文在线观看国产| 无码人妻熟妇av又粗又大| 久久精品电影| 国产精品视频一| 一区二区小视频| 国产一区二区三区在线观看精品| 成人精品久久一区二区三区| 国产黄色一级大片| 国产一区二区三区视频在线播放| 成人免费在线视频网址| 国产免费叼嘿网站免费| 国产精选一区二区三区| 国产精品对白刺激久久久| 全国男人的天堂网| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 久久影院午夜论| 亚洲电影一二三区| 一二三四区在线观看| 亚洲成人一区二区在线观看| 免费日韩视频在线观看| 六九午夜精品视频| 欧美成人r级一区二区三区| 一出一进一爽一粗一大视频| 日韩电影免费网址| 欧美日本中文字幕| 国产嫩bbwbbw高潮| 精品一区二区三区在线观看| 国产福利不卡| 成年人视频在线观看免费| 亚洲女同女同女同女同女同69| 精品国产一区二区三区无码| 亚洲天堂一区二区| 欧美一级久久久| 最近中文字幕免费| 自产国语精品视频| 日韩暖暖在线视频| a在线观看视频| 久久蜜桃一区二区| 成人在线观看毛片| 日韩在线免费| 亚洲成色www8888| 久久日免费视频| 亚洲精品在线二区| 国产日韩欧美日韩| 你懂得网站在线| 亚洲人xxxx| 91av俱乐部| 麻豆精品av| 久久躁日日躁aaaaxxxx| 波多野结衣人妻| av不卡一区二区三区| 国产精品美女在线播放| se01亚洲视频| 日韩av中文字幕在线| 日韩在线视频网址| 日韩不卡在线观看日韩不卡视频| 国产伦精品一区二区三区四区视频 | 精品国产亚洲一区二区在线观看 | 国产97免费视频| 天堂资源在线中文精品| 古典武侠综合av第一页| 精品176二区| 精品视频在线免费看| 久久久久久久久免费看无码| 国产精品99一区二区| 91精品在线观看视频| 国产女人在线视频| 岛国av在线不卡| 中文字幕一区二区人妻电影丶| 亚洲91视频| 国产日韩综合一区二区性色av| 邻家有女韩剧在线观看国语| 黑人精品xxx一区一二区| 国产精品成人免费一区久久羞羞| 91精品国偷自产在线电影 | 中文字幕av不卡| 亚洲综合在线网站| 伊人春色之综合网| 欧美一区二粉嫩精品国产一线天| 欧美 日韩 人妻 高清 中文| 一区二区免费看| 潘金莲一级淫片aaaaaaa| 在线中文字幕第一区| 亚洲一区二区三区视频| 免费av网站在线看| 欧美精品视频www在线观看 | 亚洲韩国一区二区三区| 精品久久久久久无码人妻| 狠色狠色综合久久| 国产精品手机视频| 乡村艳史在线观看| 亚洲香蕉伊综合在人在线视看| 无码人妻aⅴ一区二区三区有奶水| 久久综合一区二区| 成人免费无码av| 成人写真视频| 成人a在线视频| 国产精品刘玥久久一区| 日韩一级二级三级| 五月天综合在线| ww久久中文字幕| 国产aaaaa毛片| 久久精品影视| 国产成人一区二区三区免费看| 欧美私密网站| 一区二区三区视频在线| 国产又粗又猛又爽又黄的视频一| 亚洲少妇中出一区| 99久久久无码国产精品性波多 | 国产在线精品成人一区二区三区| 日本激情视频在线观看| 日韩一卡二卡三卡四卡| 日本午夜小视频| 国产欧美一区二区精品性| 欧美激情第一区| 亚洲国产精品第一区二区三区| 明星裸体视频一区二区| 久久夜夜久久| 国内精久久久久久久久久人| 国产午夜在线观看| 欧美一区二区视频免费观看| 永久免费看片在线播放| 国产精品嫩草久久久久| 人妻 丝袜美腿 中文字幕| 日韩中文字幕一区二区三区| 麻豆中文字幕在线观看| 欧美黑人巨大videos精品| 国产精品日日摸夜夜添夜夜av| 91精品久久| 亚洲一二三在线| 成人午夜精品福利免费| 色综合久久久久久久| www青青草原| 国产午夜精品理论片a级大结局| 性色av浪潮av| 老司机午夜精品视频在线观看| 污污污污污污www网站免费| 亚洲免费福利一区| dy888夜精品国产专区| 韩日精品一区| 久久久久久久亚洲精品| 91.xxx.高清在线| 日韩av在线精品| 99在线精品视频免费观看20| 在线观看免费成人| 日产欧产va高清| 自拍偷拍欧美精品| 女女互磨互喷水高潮les呻吟 | 视频在线在亚洲| 亚洲色婷婷久久精品av蜜桃| 秋霞欧美视频| 欧美一二三四五区| 在线视频亚洲欧美中文| 成人美女av在线直播| 激情开心成人网| 911国产网站尤物在线观看| 香蕉成人app免费看片| 一区二区三欧美| 日本一二三区在线视频| 亚洲精品在线电影| www.天天干.com| 在线成人av网站| 亚洲午夜无码久久久久| 欧美日韩中文字幕日韩欧美| 久久婷婷一区二区| 亚洲欧美国产高清| 在线观看亚洲网站| 国产精品妹子av| 欧美巨胸大乳hitomi| 久久精品欧美日韩精品| 我和岳m愉情xxxⅹ视频| 91视频免费观看| 99久久人妻精品免费二区| 成人va在线观看| 精品无码人妻少妇久久久久久| 国产69精品一区二区亚洲孕妇| 国产999免费视频| 激情深爱一区二区| 国产欧美精品一二三| 国产在线精品一区二区不卡了| 在线观看免费不卡av| 卡一卡二国产精品| 91亚洲精品久久久蜜桃借种| 美女一区二区视频| www.亚洲高清| 精品亚洲国内自在自线福利| 网站在线你懂的| 国产曰批免费观看久久久| 黄色一级片免费播放| 国产精品自拍网站| 精品人妻一区二区免费| 不卡一区二区中文字幕| 国产美女视频免费观看下载软件| 91亚洲精品久久久蜜桃| 亚洲天堂久久新| 国产精品久久精品日日| 粉嫩av性色av蜜臀av网站| 亚洲综合在线第一页| 久草精品视频在线观看| 日本韩国欧美三级| 一级黄色录像大片| 精品对白一区国产伦| 婷婷五月综合久久中文字幕| 亚洲视频免费一区| 秋霞午夜在线观看| 欧美交受高潮1| 中文在线а√天堂| 国产精品亚洲一区二区三区| 动漫一区二区三区| 国产在线视频欧美一区二区三区| 亚洲理论电影| 中文字幕av导航| 亚洲黄色影院| www.色偷偷.com| 国产成人综合在线| av网站有哪些| 日韩美女视频一区二区 | 一本色道久久综合亚洲精品不| 欧美综合在线观看视频| 精品系列免费在线观看| 国产一级免费片| 国产精品久久三区| 久久久一二三区| 欧美亚洲综合一区| www.com欧美| 亚洲午夜女主播在线直播| 色操视频在线| 国产精品日韩av| 欧美重口另类| 法国空姐在线观看免费| 国产日韩一区| 日本黄色www| 国产欧美日韩精品a在线观看| av成人免费网站| 色先锋资源久久综合| av资源免费看| 一道本无吗dⅴd在线播放一区 | 国产精品国产亚洲伊人久久| 亚洲精品一二三**| 亚洲精品高清国产一线久久| 国产一区观看| 色悠悠久久综合网| 97久久精品人人做人人爽50路| 神马久久精品综合| 色94色欧美sute亚洲线路二| 亚洲av无码乱码国产麻豆| 色七七影院综合| 亚洲日本在线观看视频| 精品一区二区三区日本| 欧美日本免费| 国产欧美一区二| 久久久精品蜜桃| 日韩欧美亚洲视频| 精品久久久久久无| 九七久久人人| 国产日韩av高清| 欧美自拍偷拍| 国模杨依粉嫩蝴蝶150p| 99视频一区二区三区| 国产在线观看免费av| 日韩欧美在线1卡| 久操视频在线免费播放| 国产欧美精品久久久| 精品理论电影在线| 欧美私人情侣网站| 99riav一区二区三区| 久久久久免费看| 精品久久国产97色综合| 在线你懂的视频| 91精品天堂| 中文乱码免费一区二区三区下载| 15—17女人毛片| 欧美激情一二三区| 天堂免费在线视频| 一区二区三区www| 最新日韩一区| 亚洲一区二区精品在线| 美腿丝袜一区二区三区| 五月天婷婷丁香网| 欧美日韩国产综合一区二区三区 | 国产精品国产三级国产普通话蜜臀| 亚洲综合成人av| 一区二区三区美女xx视频| 91九色综合| 色乱码一区二区三区熟女| 精品亚洲欧美一区| 九九热国产在线| 亚洲第一天堂无码专区| 欧美久久天堂| 日韩欧美精品一区二区三区经典| 日av在线不卡| 日韩国产第一页| 日韩一级大片在线| 国产高清中文字幕在线| 欧美日韩在线一二三| 日韩国产欧美在线播放| 日本爱爱小视频| 日韩午夜三级在线| 成人免费观看在线观看| 欧美精品亚洲精品| 免费观看30秒视频久久| 看免费黄色录像| 亚洲第一中文字幕在线观看| 在线能看的av网址| 亚洲精品二区| 国产成人综合精品三级| 国产综合精品视频| 最近2019年中文视频免费在线观看 | av网站有哪些| 欧美日本一区二区| 国产又色又爽又黄刺激在线视频| 久久青青草原| 久久狠狠亚洲综合| 日韩av在线播| 亚洲午夜精品久久久久久性色| 国产aa精品| 日韩少妇内射免费播放18禁裸乳| 国产精品私人自拍| 亚洲精品久久久久久久久久| 日本午夜精品理论片a级appf发布| 99精品在线| 国产十八熟妇av成人一区| 欧洲精品在线观看| 国产福利在线免费观看| 日韩精品在在线一区二区中文| 国产在线播精品第三| 久久久精品福利| 久久中文字幕国产| 欧美日本成人| 女人扒开腿免费视频app| 色一区在线观看| 日本三级在线观看网站| 日韩精品一区二区三区四区五区 | 日韩和欧美一区二区| 久久激情免费视频| 色偷偷av亚洲男人的天堂|