封装——JavaScript

51 阅读1分钟

1.封装概述

js基于对象编程(遇到的东西几乎都是对象)但并不是面向对象编程(没有类)

2.对象创建的5种方式

1.字面量方式
    `var obj = {
        name:'zaker',
        run:function(){
            console.log("跑");
        }
       }`
2.使用Object()创建
    `var obj = new Object();
     obj.name = "zaker";
     obj.run = function(){
         console.log("跑");
     }`
3.使用工厂模式创建(不推荐,会造成额外开销)
    `function createPerson(p_name, p_run){
        var obj = new Object();
        obj.name = p_name;
        obj.run = p_run;
        return obj;
    }`
    createPerson('zaker', ()=>{console.log("跑")})
4.使用构造函数(内存开销依然不小)
5.使用原型创建(直接将对象定义在原型上)

3.对象的属性

4.this

全局环境中出现this——>window
方法中出现this——>方法拥有者
构造函数出现this——>函数在调用时创建的对象
call()和apply():更改this所指向的对象
    两者区别:前者使用逗号分隔参数,后者是数组传入。

5.闭包

简单应用:
`function fun(){
    name:'zaker';
    return function fun2(){console.log(name)};
}
fun()();
`