亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 12
粉絲 0
評論 0
訪問量 10478
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
閉包的原理與經典應用場景,訪問器屬性,類與對象的創(chuàng)建與成員引用,數(shù)組與對象的解構過程與經典案例,JS引入到瀏覽器中的的方法及獲取DOM元素的兩個API
藍魔
原創(chuàng)
1154人瀏覽過
  1. 實例演示閉包的原理與經典應用場景 2. 實例演示訪問器屬性(不要抄課堂案例) 3. 實例演示類與對象的創(chuàng)建與成員引用 4. 實例演示數(shù)組與對象的解構過程與經典案例 5. 實例演示JS引入到瀏覽器中的的方法 6. 實例演示獲取DOM元素的二個API

閉包的原理與經典應用場景

  • 1.原理
    • 存在父子函數(shù)關系
    • 子函數(shù)調用了父函數(shù)的變量
    • 返回一個函數(shù)
    • 當子函數(shù)調用了父函數(shù)中的變量后,父函數(shù)的作用域不會消失,從而可以將函數(shù)內部的私有變量暴露到外部使用。
  • 2.經理應用場景
    • 偏函數(shù)(高階函數(shù)):當一個函數(shù)需要多個參數(shù)時,可以分批傳入
  1. fn=function(a,b){
  2. return function(c){
  3. return function(d){
  4. return a+b+c+d;
  5. }
  6. }
  7. }
  8. let f=fn(1,2)(3)(4);
  9. console.log(f);
  10. //轉為箭頭函數(shù)
  11. fn=(a,b)=>c=>d=>a+b+c+d;
  12. console.log(f=fn(1,2)(3)(4));

訪問器屬性 get/set (對象中的屬性必需用{}包起來)

  1. // 訪問器屬性
  2. let obj={
  3. data:{name:'藍魔',
  4. addr:'青島'},
  5. get addr(){
  6. return this.data.addr;
  7. },
  8. set addr(addr){
  9. this.data.addr=addr;
  10. }
  11. }
  12. console.log(obj.data.name);
  13. console.log(obj.data.addr);
  14. obj.data.addr='山東';
  15. console.log(obj.data.addr);

類與對象的創(chuàng)建與成員引用

  1. // 傳統(tǒng)構造函數(shù)
  2. let App=function(name,email){
  3. this.name=name;
  4. this.email=email;
  5. }
  6. // 定義公有方法 App.prototype
  7. App.prototype.getInfo=function(){
  8. return this;
  9. }
  10. // 創(chuàng)建對象
  11. const app1=new App('LST','lst@php.cn');
  12. console.log(app1.name,app1.email);
  13. console.log(app1.getInfo());;
  14. // ES6中的Class
  15. class Parent{
  16. // 公開屬性
  17. name;
  18. phone;
  19. // 私有屬性
  20. #sex;
  21. // 靜態(tài)屬性
  22. static flag=true;
  23. // 構造方法
  24. constructor(name,phone,sex){
  25. this.name=name;
  26. this.phone=phone;
  27. this.#sex=sex;
  28. }
  29. // 公開方法
  30. getInfo(){
  31. return this;
  32. }
  33. }
  34. // 實例化對象
  35. const p=new Parent('藍魔','13200001111','Man');
  36. console.log(p);
  37. // 類的繼承
  38. class Child extends Parent{
  39. childName;
  40. constructor(name,phone,sex,childname){
  41. super(name,phone,sex);
  42. this.childName=childname;
  43. }
  44. getInfo(){
  45. return `${super.getInfo()},${this.childName}`;
  46. }
  47. }
  48. const c=new Child('紅魔','13677778888','Woman','小孩');
  49. console.log(c.getInfo());
  50. console.log();
  51. console.log(Parent.flag);

數(shù)組與對象的解構過程與經典案例

  • 數(shù)組解構
    1. // 數(shù)組解構 "模板=數(shù)組"
    2. let [a,b]=['lst','hello'];
    3. console.log(a,b);
    4. // 更新
    5. [a,b]=['SONG','TAO'];
    6. console.log(a,b);
    7. // 參數(shù)不足,使用默認值
    8. let [a2,b2]=[1,2];
    9. [a2,b2,c2=3]=[1,2];
    10. console.log(a2,b2,c2);
    11. // 參數(shù)過多,用...rest
    12. let [a3,b3,...c3]=[1,2,3,4,5,6,7];
    13. console.log(a3,b3,c3);
    14. // 實例:兩數(shù)交換
    15. let g=66;
    16. let h=77;
    17. [h,g]=[g,h];
    18. console.log(g,h);
  • 對象解構
    1. // 對象解構 “對象模板 = 對象的鍵”
    2. let {id,name,dept}={id:1,name:'lst',dept:'技術部'};
    3. console.log(id,name,dept);
    4. // 更新,大括號不能直接出現(xiàn)在=左邊。用()包裹起來轉為表達式即可。
    5. ({id,name,dept}) = {id:11,name:'Song',dept:'采購部'};
    6. console.log(id,name,dept);
    7. // 當左邊模板中出現(xiàn)變量命名沖突時,可用別名代替解決(原變量名:別名)
    8. let {id:id2,name:name2,dept:dept2}={id:2,name:'Tao',dept:'銷售部'};
    9. console.log(id2,name2,dept2);
    10. // 克隆對象
    11. let {...obj2} = {id:5,name:'666',dept:777};
    12. console.log(obj2.id,obj2.dept);
    13. // 對象解構傳參
    14. function getInfo({id,name,dept}){
    15. console.log(id,name,dept);
    16. }
    17. getInfo({id:1,name:'lst',dept:'JiShuBu'});

JS引入到瀏覽器中的的方法

  1. <!-- 1.寫到元素的標簽中,比如事件屬性 -->
  2. <button onclick="this.style.color='red';document.body.style.background='yellow'">點擊變字</button>
  3. <!-- 2.使用javascript標簽引入 -->
  4. <button onclick="save(this);">點擊保存</button>
  5. <script>
  6. function save(obj){
  7. document.body.style.background='yellow';
  8. obj.textContent='保存成功!';
  9. obj.style.background='green';
  10. }
  11. </script>
  12. <!-- 3.引入外部.js文件引入腳本 -->
  13. <script src='my.js'></script>

獲取DOM元素的兩個API

  1. <!-- 1.querySelectorAll(css選擇器):選擇一組 -->
  2. <div class="item">item1</div>
  3. <div class="item">item2</div>
  4. <div class="item">item3</div>
  5. <div class="item">item4</div>
  6. <div class="item">item5</div>
  7. <div class="item">item6</div>
  8. <script>
  9. let items=document.querySelectorAll('.item');
  10. for(let i=0,length=items.length;i<length;i++){
  11. items[i].style.background='lightgreen';
  12. }
  13. </script>

  1. <div class="item">item1</div>
  2. <div class="item">item2</div>
  3. <div class="item">item3</div>
  4. <div class="item">item4</div>
  5. <div class="item">item5</div>
  6. <div class="item">item6</div>
  7. <!-- 2.querySelector(css選擇器):選擇匹配到的第一個 -->
  8. <script>
  9. let item=document.querySelector('.item');
  10. item.style.background='lightgreen';
  11. // 匹配任意一個
  12. item=document.querySelector('.item:nth-of-type(3)');
  13. item.style.background='lightgreen';
  14. </script>

批改老師:PHPzPHPz

批改狀態(tài):合格

老師批語:
本博文版權歸博主所有,轉載請注明地址!如有侵權、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網理性發(fā)言,請遵守新聞評論服務協(xié)議
0條評論
關于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網:公益在線php培訓,幫助PHP學習者快速成長!
關注服務號 技術交流群
PHP中文網訂閱號
每天精選資源文章推送
PHP中文網APP
隨時隨地碎片化學習
PHP中文網抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網,和優(yōu)秀的人一起學習!
    全站2000+教程免費學