zoukankan      html  css  js  c++  java
  • js中级总结

      this问题;

      this是JavaScript的关键字      用途:指向某一个对象

      如何判断this的指向

      函数内:两种情况:1.以函数形式调用(不带 . 指向window )

               2.以方法形式调用(带 .  this指向 . 前面的)

        函数外:this指向window

      1.自调用函数内this都是window   

      2.定时器this指向window

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

      4.构造函数里this指向他的实例(子对象)

      怎样替换函数内的this?

      1.call()               替换.前面的this并执行那个函数

      2.apply()

      3.bind()  

      A.fn.call(B,5)  B取代fn中的this,并调用fn()

      call和apply,bind只能是函数(方法)内,或者是函数对象

      call前面对象必须是函数对象

      var a=45;

      var b={

        a:12

        }

      function fn(){

        console.log(this.a)

        }

      fn.call(b)

      面向对象:

      以对象的方法来写业务逻辑

      1.单例模式   var obj={}

      2.工厂模式    function fn(){

               var obj={}

               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__它指向父类的原型

      (注意的两个点:1.子类必须通__proto__查找     2.父类通过prototype向下继承)

      原型链:

      子对象在操作个属性时,首先看这个属性是私有的,有就直接使用,没有通过__proto__向子对象父类查找,父类有就使用,没有就像父类的__proto__继续向上查找,直到基类object ,如果基类没有就是undefined

      作用域和作用域链

      作用域:

      浏览器  客户端给javascript(简称js)生存环境

      js代码在执行前,浏览器会给js一个生存环境window,他会分成两个模块,一个叫内存模块,一个叫执行模块 ,内存模块在代码执行前就完成了,有var function 的关键字 每存放一个变量就会生成一个内存地址;

      在执行模块 如:a=12;  先通过内存地址查找有没有a,有就直接赋值,没有就是undefined   这种查找机制就是作用域链

      赋值:(赋值都是在执行模块)

      1.基本数据类型就直接赋值

      2.引用数据类型将内存地址赋给变量

      引用数据类型和基本数据类型 本质区别

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

      引用数据类型,在赋值的时候把内存地址赋值给变量,在操作引用数据类型的时候,首先通过内存地址去找里面的东西,然后操作

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

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

      

  • 相关阅读:
    asp.net c#中FCKeditor的详细配置及精简操作
    winform C#中Byte与String的转换方法,相互转换
    wp,wordpress博客怎样让首页的文章默认显示摘要
    vs2005 c#鼠标悬停高亮显示在gridview中
    我国CN域名一年减少600万个 全要求实名注册
    c# winform未能找到引用的组件“Excel”的解决办法
    asp.net c#中使用FCKeditor的方法,版本2.66
    C# 注册表操作类(完整版)winform
    c#如何打印picturebox里的图片,winform怎样打印picturebox里的图片
    imageready 如何保存为gif格式图片总结.
  • 原文地址:https://www.cnblogs.com/shangjun6/p/10003336.html
Copyright © 2011-2022 走看看