Blogger Information
Blog 16
fans 0
comment 0
visits 5721
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
class类/DOM学习
Sinan学习博客
Original
400 people have browsed it

1. class 声明与实例化,属性,方法,静态方法与继承的语法

学习class(类)

为了实现批量创建对象简化代码我们应该使用类,类是我们创建对象的模板。

  1. class关键字用于创建了类
  2. static关键字可以创建类的属性及方法,且只能由类访问
  3. 在类里未使用static关键字创建的属性及方法为实例属性与实例方法,只能由实例访问
  4. 构造函数constructor(){},接收实例化时的传参,并在实例化时调用。
  5. constructor(){}里的this是类本身
  6. 继承:在constructor(){}使用super()关联父类的实例属性
  7. 继承:在子类方法中使用super.xxx调用父类的实例方法
  1. //使用class关键字定义了一个Person类
  2. class Person {
  3. // name = "莫莫莫"; //Person类的实例属性,只能由实例访问
  4. // age = 30; //Person类的实例属性,只能由实例访问
  5. // gender = "男"; //Person类的实例属性,只能由实例访问
  6. static testAttribute = "这是一个静态属性, 只有用类去访问。";
  7. //实例方法,只有由实例对象访问。
  8. sayHello() {
  9. console.log("你好!我是" + this.name);
  10. }
  11. //静态方法,只有能由类访问。
  12. static testMethod() {
  13. console.log("我是静态方法,只能由类访问");
  14. }
  15. //在类中使用特殊方法constructor(),这个方法称为构造函数(构造方法)。
  16. //构造函数会在实例化对象是执行。
  17. constructor(name, age, gender) {
  18. //构造函数的形参,用于接收实例对象的实参
  19. this.name = name;
  20. this.age = age;
  21. this.gender = gender;
  22. }
  23. }
  24. //用new关键字实例化一个Person类的对象p1
  25. //当new Person()时构造函数就执行了,我理解为执行new Person() 就是调用了 constructor(){},也就是说:new Person() => constructor(){}
  26. //当创建了对象就调用了函数,所以称之为**构造函数**
  27. const zhangSan = new Person("张三", 30, "男");
  28. console.log(zhangSan.name, zhangSan.age, zhangSan.gender);
  29. //new Person(),圆括号里的参数会传递到构造函数的圆括号里的参数中。
  30. //new Person("张三",30,"男") -> constructor(name,age,gender){}
  31. console.log(Person.age); //undefined 实例属性只能由实例访问,不能用类访问。
  32. console.log(Person.testAttribute); //类属性,只有用类去访问。
  33. console.log(zhangSan.testAttribute); //undefined 类属性不能用实例对象访问。
  34. zhangSan.sayHello(); //实例方法由实例调用
  35. Person.testMethod(); //静态方法由类调用
  36. console.log("_______________________________________________");
  37. // 继承---使用关键字extends
  38. class Animal extends Person {
  39. constructor(name, age, gender, color) {
  40. super(name, age, gender);
  41. //新增实例属性
  42. this.color = color;
  43. }
  44. //重写方法
  45. sayHello() {
  46. super.sayHello(); //通过super可引入父类的方法
  47. console.log(`我是${this.name}父类的方法,也有自己的方法!`);
  48. }
  49. } // 子类Animal 继承自 父类Person
  50. Animal.testMethod(); //Animal可直接访问Person的静态方法
  51. console.log(Animal.testAttribute); //Animal可直接访问Person的静态属性
  52. //通过子类实例化对象
  53. const cat = new Animal("狸花猫", 3, "母", "黄色");
  54. console.log(cat);
  55. cat.sayHello();

2. DOM元素的获取方法演示

  1. /*
  2. 获取DOM元素的方法
  3. - 获取一组:document.querySelectorAll()
  4. - 获取一个:document.querySelector()
  5. - 获取html: document.documentElement
  6. - 获取body: document.body
  7. - 获取head: document.head
  8. - 获取title: document.title
  9. */
  10. // 获取一组元素
  11. const items = document.querySelectorAll('.list > li');
  12. console.log(items)
  13. //获取一个元素
  14. const li = document.querySelector('.list > li');
  15. console.log(li)
  16. //获取元素的内容
  17. console.log(li.textContent)
  18. //修改元素内容
  19. console.log(li.textContent = "abc")
  20. //获取html根元素
  21. console.log(document.documentElement)
  22. //获取body元素
  23. console.log(document.body)
  24. //获取head元素
  25. console.log(document.head)
  26. //获取title元素
  27. console.log(document.title)

3. DOM遍历的常用方法

  1. <ul>
  2. <li>item1</li>
  3. <li>item2</li>
  4. <li>item3</li>
  5. <li>item4</li>
  6. <li>item5</li>
  7. <li>item6</li>
  8. </ul>
  1. const ul = document.querySelector("ul");
  2. console.log(ul.nodeType); //查看节点类型
  3. console.log(ul.textContent); //获取元素文本
  4. console.log(ul.firstElementChild); //获取第一个子元素
  5. console.log(ul.firstElementChild.nextElementSibling); //获取子元素的下一个元素
  6. console.log(ul.lastElementChild); //获取最后一个子元素
  7. console.log(ul.lastElementChild.previousElementSibling); //获取子元素的上一个元素
  8. let items = ul.childNodes; //获取ul的所有子节点,包括:元素、文本(这里的文本指换行,不是元素指元素包起来的文本)
  9. console.log(items);
  10. items = ul.children; //获取ul的所有元素子节点(这通常是我们想要的)
  11. console.log(items);
  12. const li = ul.firstElementChild;
  13. const pElement = li.parentElement; //获取子元素的父元素,也可以用 parentNode
  14. console.log(pElement);
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post