只是简单的记录下几个知识点
看下面一段代码
function Food() {}
Food.prototype.say = function () {
console.log( this.color )
}
var fish = new Food()
var o = {
color: 'red'
}
fish.say.call(o); // red
对象 o 利用 food 方法调用了 food 的 say 方法
function test(a, b, c, d){
var arg = Array.prototype.slice.call( arguments ,1);
console.log( arg )
}
test("a","b","c","d") // ["b", "c", "d"]
返回数值 b c d 三个方法
可以说不调用 slice.call 的方法就没有办法进行数组切割。
知识点补充
Element.attributes 属性返回该元素所有属性节点的一个实时集合。改集合是一个NameNodeMap 对象,不是一个数组, 所以 它 没有 数组的 方法,其包含的 属性 节点 的 索引 顺序 随浏览器不同 而 不同。 更确切的说,attributes 是 字符串形式的名 / 值对,每一对 名/值 对应 一个属性节点。
语法
var attr = element.attributes;
使用在 指令解析函数 这部分

地址:
https://developer.mozilla.org/zh-CN/docs/Web/API/Element/attributes
Node.firstChild 只读属性返回树中 节点的第一个子节点,如果节点是无子节点,则返回null
语法:
var childNode = node.firstChild

地址:
https://developer.mozilla.org/zh-CN/docs/Web/API/Node/firstChild
一天能多学几个API 也是好的
对知识点进行二次补充
addEventListener( ) 方法用于向指定元素添加事件句柄。
简单的来讲
document.getElementById('myBtn').addEventListener("click",function(){
document.getElementById('demo').innerHTML = "Hello World"
})
它有三个参数,
1.event 必须。字符串,指定事件名称
2.function 必须,指定要事件触发时执行的函数,当事件对象会作为第一个参数传入函数。事件对象的类型取决于特定的事件。例如,"click" 事件属于 MouseEvent(鼠标事件)对象。
3.useCapture 可选。布尔值,指定事件是否在捕获或冒泡阶段执行。
true -- 事件句柄在捕获阶段执行
alse- false- 默认。 事件句柄在冒泡阶段执行 选择句柄的执行方式,false 选择的是捕获模式

捕获 模型,但是JS 高级程序设计一书表示冒泡使用较为常见。
冒泡模型

然后我们在看一个什么是事件流

每天能多看一点就是好的
文章采用 知识共享署名 4.0 国际许可协议 进行许可,转载时请注明原文链接。