js基础练习

const 关键字

const 用于声明一个或多个常量,声明时必须进行初始化,且初始化后值不可再修改:

 

 

 

 

 

 

 

事件冒泡或事件捕获?

事件传递有两种方式:冒泡与捕获。

事件传递定义了元素事件触发的顺序。 如果你将 <p> 元素插入到 <div> 元素中,用户点击 <p> 元素, 哪个元素的 "click" 事件先被触发呢?

在 冒泡 中,内部元素的事件会先被触发,然后再触发外部元素,即: <p> 元素的点击事件先触发,然后会触发 <div> 元素的点击事件。

在 捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即: <div> 元素的点击事件先触发 ,然后再触发 <p> 元素的点击事件。

addEventListener() 方法可以指定 "useCapture" 参数来设置传递类型:

addEventListener(eventfunctionuseCapture);

默认值为 false, 即冒泡传递,当值为 true 时, 事件使用捕获传递。

 

 

prototype 继承

 

所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法:

 

  • Date 对象从 Date.prototype 继承。
  • Array 对象从 Array.prototype 继承。
  • Person 对象从 Person.prototype 继承。

 

所有 JavaScript 中的对象都是位于原型链顶端的 Object 的实例。

 

JavaScript 对象有一个指向一个原型对象的链。当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。

 

Date 对象, Array 对象, 以及 Person 对象从 Object.prototype 继承。

 

添加属性和方法

 

有的时候我们想要在所有已经存在的对象添加新的属性或方法。

 

另外,有时候我们想要在对象的构造函数中添加属性或方法。

 

使用 prototype 属性就可以给对象的构造函数添加新的属性:

function Person(first, last, age, eyecolor) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
  this.eyeColor = eyecolor;
}
 
Person.prototype.nationality = "English";
function Person(first, last, age, eyecolor) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
  this.eyeColor = eyecolor;
}
 
Person.prototype.name = function() {
  return this.firstName + " " + this.lastName;
};

 实例参考:https://www.runoob.com/js/js-examples.html

https://www.runoob.com/jsref/jsref-tutorial.html

https://www.runoob.com/jsref/jsref-obj-array.html

posted @ 2020-03-24 10:41  剧里局外  阅读(456)  评论(0编辑  收藏  举报