• Web--js中级--11月21日随笔


    1.this 是js的关键字

    用途:指向某一个对象。

    判断this的指向:

      函数(方法) 内

        一种是以函数的方式调用(不带)this指向window

        一种是以方法的形式调用(函数名前面带点)this指向点前面的

        函数(方法)外,this指向window

    this指向的特例

      1.自调用函数内的this都指向window

      2.定时器的this都指向触发事件的元素

      3.事件里面的this指向触发事件的元素

      4.构造函数里的this指向当前实例类

    2.怎样替换函数内的this

      (1)Call()       fn.call(B,5)B取代了fn中的this并把fn调用了

      (2)Apply()  

      (3)bind()

    Call和Apply,bind只能是函数(方法)或者函数对象

    fn.call(b)  call前面必须是函数对象,其他不行

    2.面向对象

      1.单例模式    Var  obj={}

      2.工厂模式    function  fn(){

        Var obj={}

        obj.name="zhang"

        return  obj;

        }

         3.构造函数    三个特点:

        (1)函数名首字母必须是大写 

        (2)函数属性前面加this

        (3)函数调用用new调用 

        function Person(name){

        this.name=name

         }

        Var zhang=new Person(“zhang”)

     1.每个构造函数天生自带一个 prototype  的原型,叫原型,他是一个对象,存放父类可继承的属性

     2.函数内的属性是子对象天生就继承的,不需要任何操作

    3.prototype上的属性是继承给子对象的,子对象必须通过— —proto— —(原型链)来查找

    4.每个子对象都有一个— —proto— —,他指向父类的原型。

    原型链:

      子对象在操作一个属性时,首先看这个属性是不是私有的,有就直接使用,没有就通过— —proto— —向子对象的父类查找

    ,父类有就使用,没有就用父类的— —proto— —继续向上查找,直到基类Object,如果基类没有就是undefined。

    举例:

    Object.prototype.sex="男男女女"

        function Person(){

           this.name="张三"

        }   类

        Person.prototype={

           age:"456"

        }   共有的

        var zhang=new Person()    实例出的子对象

        console.log(zhang.sex)

     4. 作用域和作用域链

      浏览器客户端给js一个生存环境

      js代码在执行前,浏览器会给js一个生存环境叫window

      他会分为两个模块,一个叫内存模块,一个叫执行模块。内存模块在代码执行前就完成了,存放关键字var和function,每存放一个变量就会生成一个内存地址。

    赋值:1.基本数据类型(string,number,null,boolean,undefined) 直接赋值

          2.引用数据类型(Object,Array,function)

    举例:’

    var obj={

            name:"zhangsan"

        }

        var person=obj;

        person.name="lisi"

        console.log(obj.name)

     基本数据类型在赋值的时候就是简单的赋值

    引用数据类型在赋值的时候,把内存地址赋值给变量,在操作引用数据类型的时候,首先通过内存地址去找里面的东西,然后操作。(引用数据类型在赋值的时候,首先会开辟一个堆内存,存放里面的代码块,然后把内存地址赋值给变量。在操作这个变量时候会通过内存地址去查找,然后修改里面的东西)

    引用数据类型  :object,array,function 前两个都是以键值对的形式存放,而后一个以字符串的形式存放。

  • 相关阅读:
    通过API方式查看Azure Sign-ins记录
    定期删除Azure存储账号下N天之前的数据文件-ASM
    定期删除Azure存储账号下N天之前的数据文件-ARM
    使用自定义映像批量创建托管磁盘虚拟机
    CentOS6.9 ARM虚拟机扩容系统磁盘
    Linux小技巧
    mysql数据导到本地
    mac安装pkg 一直“正在验证” 卡着
    idea compare功能 之一次bug修复
    番茄三月账单
  • 原文地址:https://www.cnblogs.com/lovels/p/10044457.html
Copyright © 2020-2023  润新知