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   前两个都是以键值对的形式存放,而后一个以字符串的形式存放

  

js中级总结的更多相关文章

  1. codefordream 关于js中级训练

    中级训练接着就紧锣密鼓的开始了. 首先是关于变量,变量的作用是给一个数据值标注名称. 注:JavaScript中变量名,函数名,参数名的命名规范:至少由字母,下划线,美元符号,数字其中的一种组成,但不 ...

  2. Js中级复习

    JS中级复习—— 1,this   就是js的关键字 用途:指向某一个对象 如何判断this指向: 函数(方法)内—— 一种以函数的方式调用(不带.)this指向window 一种以方法的形式调用(函 ...

  3. 我的JS 中级学习篇

    在codefordream上进入中级学习后,感觉立马从js的基础学习往前跳了好远,上面的东西好像都是第一次看到一样.这时候才发现,说来也曾接触过js,但是这时候才发现对js的认识就停在知道两点:js中 ...

  4. JS中级 - 02:表单、表格

    getElementsByTagName() getElementsByTagName() 方法可返回带有指定标签名的对象的集合. getElementsByClassName() 返回文档中所有指定 ...

  5. js中级6

    1.动画 (1)Css样式提供了运动 过渡属性transition  从一种情况到另一种情况叫过渡 transition:time          linear                 de ...

  6. 11-22 JS中级复习

    1.this js的关键字, 用途:指向某一个对象. 如何判断this指向 函数(方法)内 一种以函数的方式调用(不带.) this指向winodw 一种以方法的形式调用(函数名前面带.)this指向 ...

  7. js中级小知识5

    元素的属性 div.attributes是所有标签属性构成的数据集合 div.classList是所有class名构成的数组集合 在classList的原型链上可以看到add()和remove() 1 ...

  8. js中级小知识4

    1.针对表单 form   input     select      textarea type="radio/checkbox/passdord/button/submit/reset/ ...

  9. js中级小知识2

    1.面向对象 js一开始就是写网页特效,面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差.所以作者就收到java和c的影响,往面向对象靠齐.js天生有一个Objec ...

  10. js中级小知识1

    首先我们复习之前的小知识,本期博客与之前有关 js数据类型 基本数据类型:string    undefined         null         boolean          numbe ...

随机推荐

  1. mongodb添加延时节点

    1.      简介 延时节点是主节点过去某个时间点的“数据快照”,通常用来做数据备份,如果主节点有误操作而删除了数据,可以通过延时节点来恢复数据.例如,当前时间是10:00,并且延时节点设置1个小时 ...

  2. gulp 系统教程

    移步: http://www.cnblogs.com/2050/p/4198792.html gulp外挂 加md5   版本号 自动合并图片并修改css的坐标 一个系统列子 gulp可以做哪些事情

  3. 玩转TypeScript(2) --简单TypeScript类型

    通过TypeScript的Module和Class,TypeScript提供了相对于javaScript更加清晰的代码构造,相较于javaScript的.js满天飞的代码,用TypeScript,你可 ...

  4. python中几个实用的文件操作

    1. 判断指定目录是否存在: os.path.exists(input_folder) 2. 判断指定目录是不是文件夹 os.path.isdir(input_folder) 3. 判断指定目录是不是 ...

  5. .Protobuf,GRpc,Maven项目出现UnsatisfiedDependencyException、ClassNotFoundException、BuilderException等异常

    异常如下: Error starting ApplicationContext. To display the auto-configuration report re-run your applic ...

  6. git中的bug分支和Feature分支

    /*游戏或者运动才能让我短暂的忘记心痛,现如今感觉学习比游戏和运动还重要——曾少锋*/ 如果对于分支还不太明白的学者.请先参考:http://www.cnblogs.com/zengsf/p/7512 ...

  7. 猎豹免费WiFi-随身WiFi共享热点,永久免费的无线路由器 - imsoft.cnblogs

  8. 腾讯的模板引擎---artTemplate

    主要方法如下5种,在此不详细说artTemplate的方法,主要记录三种使用artTemplate的方法. template(id, data) 根据 id 渲染模板.内部会根据document.ge ...

  9. ASM 磁盘、目录的管理

    --======================== -- ASM 磁盘.目录的管理 --======================== ASM磁盘是ASM体系结构的重要组成部分,ASM磁盘由ASM ...

  10. GPU驱动兼容性问题

    GPU驱动兼容性问题 问题描述: 将笔记本的GTX860M 的驱动升级到了376.09版本,出现登陆界面,输入密码后黑屏. 解决思路: 由于正常显示登陆窗口,且可以输入密码,基本排除硬件问题和集成显卡 ...