29-继承/JSON/本地存储等

9/6/2001

# 一. 说一下,JS中都有哪些继承方案?

# 二. JSON数据都有哪些格式

# 三. LocalStorage和SessionStorage有什么区别?

# 四. 封装工具类Cache.js,可以对LocalStorage和SessionStorage操作(CRUD)

# 五. 完成如下需求

function Dog(name) {
    this.name = name;
}
Dog.prototype.bark = function() {
    console.log('wangwang');
}
Dog.prototype.sayName = function() {
    console.log('my name is ' + this.name);
}
/*
let sanmao = new Dog('三⽑');
sanmao.sayName();
sanmao.bark();
*/
function _new() {
    //=>完成你的代码 
}
let sanmao = _new(Dog, '三⽑');
sanmao.bark(); //=>"wangwang"

sanmao.sayName(); //=>"my name is 三⽑"
console.log(sanmao instanceof Dog); //=>true
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 六. 输出下⾯代码运⾏的结果

function Foo() {
    getName = function() {
        console.log(1);
    };
    return this;
}
Foo.getName = function() {
    console.log(2);
};
Foo.prototype.getName = function() {
    console.log(3);
};
var getName = function() {
    console.log(4);
};

function getName() {
    console.log(5);
}
Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# 七. 使用原生JS模拟call的实现原理(选做)

<script>
    // call的原理
    (function() {
        function mycall(context) {

        }
        Function.prototype.mycall = mycall;
    }())

    function fn(num1, num2) {
        console.log(this);
        return num1 + num2
    }
    let obj = {
        name: "wc"
    }
    // fn.mycall()
    let res = fn.mycall(obj, 6, 8)
    console.log(res)
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 八. 使用原生JS模拟apply的实现原理(选做)

<script>
    //  apply的使用
    (function() {
        function myapply(context, args) {

        }
        Function.prototype.myapply = myapply;
    }())

    function fn(num1, num2) {
        console.log(this)
        return num1 + num2;
    }

    console.log(fn.myapply())
    let obj = {
        name: "wc"
    };
    console.log(fn.myapply(obj, [1, 2]))
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 九. 数据类型检测都有哪些方式?尝试封装一个检测数据类型的函数

# 十. 尝试理解下面这张原型链的关系图

Last Updated: 12/25/2022, 10:02:14 PM