JS高级
一、函数高级
1、函数回调
function callback(data) {}
function func(callback) {
if (callback) callback(data);
}
2、闭包
function outer() {
var data = {}
function inner() {
return data;
}
return inner;
}
二、循环绑定
.html文件
<ul>
<li>列表项</li>
<li>列表项</li>
<li>列表项</li>
</ul>
.js文件
var lis = document.querySelector('li');
for (var i = 0; i < lis.length; i++) {
lis[i].onclick = function () {
console.log(i);
}
}
三、面向对象JS
1、属性与方法
var obj = {}; | var obj = new Object();
obj.prop = "";
obj.func = function () {}
delete obj.prop
delete obj.func
2、类字典结构使用
var dict = {name: "zero", age: 18}
var dict = {"my-name": "zero", fn: function () {}, fun () {}}
dict.name | dict["my-name"] | dict.fn()
3、构造函数(ES5)
function People(name, age) {
this.name = name;
this.age = age;
this.eat = function () {
return 'eat';
}
}
4、继承(ES5)
function Sup(name) {
this.name = name;
this.fn = function () {
console.log('fn class');
}
}
console.log(Sup.prototype);
console.log(sup.__proto__);
function Sub(name) {
Sup.call(this, name);
}
Sub.prototype = new Sup;
var sub = new Sub("subClass");
console.log(sub.name);
sub.fn();
Sub.prototype.constructor = Sub;
5、类及继承(ES6)
class People {
constructor (name, age) {
this.name = name;
this.age = age;
}
eat () {
console.log('吃吃吃');
}
static create () {
console.log('诞生');
}
}
class Student extends People {
constructor (name, age) {
super(name, age)
}
}
四、定时器