博客列表 >第16章 0106-原型类与DOM操作,学习心得、笔记

第16章 0106-原型类与DOM操作,学习心得、笔记

努力工作--周工--Robin
努力工作--周工--Robin原创
2021年01月11日 00:18:47507浏览

今天所学心得、笔记

1、构造函数的原型与对象原型

  1. // 构造函数的原型是,构造函数创建时系统自动创建的一个对象,它指向Object对象的原型__proto__;
  2. //对象原型是,对象创建时系统自动创建的一个对象,它指向构造函数的原型prototype;
  3. // 构造函数的原型关键字:prototype,对象原型关键字:__proto__;
  4. //构造函数的原型,创建属性和方法,对象原型不创建属性和方法,而直接使用构造函数的原型的属性和方法;
  5. // 如果对象中有创建属性和方法,和构造函数的原型中的同名,系统优先使用对象中有创建属性和方法;
  6. // 当一个需要使用的属性和方法在对象中没找到,系统便会去构造函数的原型中找,还没有找到的情况下,
  7. // 会向上查找到object的原型,直到报null为止;
  8. // 当所有对象有共同的方法和属性的时候,将这些方法和属性放在构造函数原型中,可以节省资源;
  9. //声明一个“模拟类”的构造函数
  10. function User(name, age) {
  11. this.name = name;
  12. this.age = age;
  13. }
  14. // 构造函数的原型
  15. User.prototype.showName = function (){
  16. console.log(`My name is ${this.name}`);
  17. };
  18. User.prototype.showAge = function (){
  19. console.log(`I'm ${this.age} years old`);
  20. };
  21. User.prototype.nation = "中国";
  22. // User.prototype = {
  23. // // 如果修改了原来的原型对象,给原型对象赋值的是一个对象,则必须手动的使用constructor
  24. // // 指回原为的构造函数
  25. // constructor: User,
  26. // showName: function (){
  27. // console.log(`My name is ${this.name}`);
  28. // },
  29. // showAge: function () {
  30. // console.log(`I'm ${this.age} years old`);
  31. // },
  32. // // nation: "中国",
  33. // }
  34. const user1 = new User("admin", 20);
  35. user1.nation = "联合国";
  36. console.log(user1); //{name: "admin", age: 20, nation: "联合国"}
  37. console.log(user1.__proto__); //{nation: "中国", showName: ƒ, showAge: ƒ, constructor: ƒ}
  38. console.log(User.prototype); //{nation: "中国", showName: ƒ, showAge: ƒ, constructor: ƒ}
  39. console.log(user1.__proto__ === User.prototype); //true
  40. user1.showName(); //My name is admin
  41. user1.showAge(); //I'm 20 years old
  42. const user2 = new User("peter", 30);
  43. console.log(user2); //User {name: "peter", age: 30}

2、获取dom元素的常用方法

  1. //获取所有li元素
  2. const list = document.querySelectorAll("#list li")
  3. console.log(list);
  4. //获取第一个li元素
  5. let first = document.querySelector("#list li");
  6. console.log(first);
  7. // 获取某一个或某一类元素
  8. // html
  9. console.log(document.documentElement);
  10. // head
  11. console.log(document.head);
  12. // body
  13. console.log(document.body);
  14. // title
  15. console.log(document.title);
  16. // forms
  17. console.log(document.forms[0]);
  18. // images
  19. console.log(document.images);
  20. // href
  21. console.log(document.location.href);
  22. // domain
  23. console.log(document.domain);

2、获取dom元素的常用方法

  1. // 增
  2. const ul = document.querySelector("#list");
  3. // 1. 创建元素
  4. const li = document.createElement("li");
  5. // parent.appendChild(newEl),添加到页面
  6. ul.appendChild(li);
  7. li.innerText = "大家好!";
  8. // li.innerHTML = '<i style="color:red">item6</i>';
  9. let htmlStr = "<li style='color:#ff0000'>同学们好!</li>";
  10. // 将html字符串直接解析为dom元素
  11. ul.insertAdjacentHTML("beforeEnd", htmlStr);
  12. // 删, 删除item4
  13. ul.removeChild(document.querySelector("li:nth-of-type(4)"));
  14. // 改
  15. let h3 = document.createElement("h3");
  16. h3.innerHTML = "开始上课了......";
  17. document.querySelector("li:nth-of-type(2)").replaceWith(h3);
  18. // ul.replaceChild(h3, document.querySelector("li:last-of-type"));
  19. // 查
  20. // 获取所有子元素
  21. console.log(ul.children);
  22. // 第一个子元素
  23. console.log(ul.firstElementChild);
  24. // 最后一个
  25. console.log(ul.lastElementChild);
  26. // 父节点
  27. console.log(ul.lastElementChild.parentElement);
  28. // 前一个兄弟
  29. const jiu = document.querySelector("#list li:nth-of-type(9)");
  30. // 后一个兄弟
  31. console.log(jiu.nextElementSibling.innerHTML);

例程演示结果

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