博客列表 >javascript中的闭包,访问器属性与类的创建与解构

javascript中的闭包,访问器属性与类的创建与解构

moon
moon原创
2022年01月06日 06:03:13384浏览

javascript中的闭包经典用法

  • 满足下面2个条件的函数称之为闭包函数:1.父子函数2.子函数使用父函数中的变量,例如下列函数
  1. fn=function(a,b)
  2. {
  3. return function(c){
  4. return a+b+c;
  5. }
  6. }
  • 使用闭包函数可以将服务器数据分块传入,例如下列函数
  1. fn = function (a) {
  2. return function (b) {
  3. return function (c) {
  4. return a + b + c;
  5. };
  6. };
  7. };

上述函数还可简化成 fn=a=>b=>c=>a+b+c

访问器的属性

  • 将一个方法伪装成属性进行访问称之位访问器属性,例如下列代码
  1. player={
  2. isnewplayer:1,
  3. data: {accont:"376220510",password:"6350187",level:100,job:"战士"},
  4. get job(){
  5. return this.data.job;
  6. },
  7. set job(newjob){
  8. this.data.job=newjob;
  9. },
  10. }
  11. console.log(player.job);
  12. player.job="法师";
  13. console.log(player.job);

上述代码中,使用player.job访问了player对象中的get job方法。这种将方法伪装成属性的方式称之为访问器属性

类的构造与成员引用

  • javascript中class来创建一个类例如下列代码
  1. class player{
  2. account="admin";
  3. password="123456";
  4. sex="man";
  5. level="100";
  6. job="战士";
  7. hp="20000";
  8. mp="2000";
  9. constructor(account,password,sex,level,job){
  10. this.account=account;
  11. this.password=password;
  12. this.sex=sex;
  13. this.level=level;
  14. this.job=job;
  15. }
  16. setinfo(level){
  17. this.level=level;
  18. this.hp=level*200;
  19. this.mp=level*20;
  20. }
  21. }
  22. let player1=new player("376220510","123456","女",1,"战士");
  23. console.log(player1.hp);
  24. player1.setinfo(1);
  25. console.log(player1.hp);

上述代码,创建了一个player类,并且使用new创建了player1这个实例

数组与类的解构

  • 1.数组解构:模板 = 数组 例如下列代码
    1. let [name, email] = ["朱老师", "498668472@qq.com"];
    2. console.log(name, email);
  • 2.对象解构:对象模板 = 对象字面量,例如下列代码
  1. let { id, lesson, score } = { id: 1, lesson: "js", score: 80 };
  2. console.log(id, lesson, score);
  3. let {...obj} ={ id: 1, lesson: "js", score: 80 };
  4. console.log(obj);
  • 3.应用场景:使用对象解构传参,例如下列代码
  1. function getUser({id,name,email}) {
  2. console.log(id,name,email);
  3. }
  4. getUser({id:123, name:'张三',email:'zs@php.cn'})

将js引入到浏览器的方法

  • 1.使用script标签引入js脚本, 写到这对标签中, 仅于当前的html文档生效例如下列代码
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>浏览器中的js</title>
  8. </head>
  9. <body>
  10. <button onclick="console.log('hello world');">按钮1</button>
  11. <button onclick="setBg(this)">按钮2</button>
  12. <script>
  13. function setBg(ele) {
  14. document.body.style.backgroundColor = "wheat";
  15. ele.style.backgroundColor = "yellow";
  16. ele.textContent = "保存成功";
  17. }
  18. </script>
  19. </body>
  20. </html>
  • 2.如果这个按钮的功能, 需要在多个页面中使用, 可以将这个js脚本保存为外部脚本,然后再引入到当前的html,例如<script src="outer.js"></script>这样即可

取DOM元素的二个API接口

  • 1.获得一组: querySelectorAll(css选择器),例如下列代码
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>获取dom元素</title>
  8. </head>
  9. <body>
  10. <ul class="list">
  11. <li class="item">item1</li>
  12. <li class="item">item2</li>
  13. <li class="item">item3</li>
  14. <li class="item">item4</li>
  15. <li class="item">item5</li>
  16. </ul>
  17. <script>
  18. console.log(document);
  19. const items = document.querySelectorAll(".list > .item");
  20. console.log(items);
  21. for (let i = 0, length = items.length; i < length; i++) {
  22. items[i].style.color = "red";
  23. }
  24. </script>
  25. </body>
  26. </html>

上述代码中使用document.querySelectorAll(".list > .item");获得了所有li元素

  • 2.一个(一组中第1个): querySelector(css选择器),例如下列代码
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>获取dom元素</title>
  8. </head>
  9. <body>
  10. <ul class="list">
  11. <li class="item">item1</li>
  12. <li class="item">item2</li>
  13. <li class="item">item3</li>
  14. <li class="item">item4</li>
  15. <li class="item">item5</li>
  16. </ul>
  17. <script>
  18. const first = document.querySelector(".list > .item");
  19. console.log(first === items[0]);
  20. first.style.backgroundColor = "yellow";
  21. const three = document.querySelector(".list > .item:nth-of-type(3)");
  22. three.style.backgroundColor = "wheat";
  23. </script>
  24. </body>
  25. </html>

上述代码中使用document.querySelector(".list > .item");获得了第一个li元素
使用document.querySelector(".list > .item:nth-of-type(3)");获得了第三个li元素

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议