11-22 JS中级复习
1.this js的关键字,
用途:指向某一个对象。
如何判断this指向
函数(方法)内
一种以函数的方式调用(不带.) this指向winodw
一种以方法的形式调用(函数名前面带.)this指向点前面的
函数(方法)外,this指向window
This指向的特列
- 自调用函数内的this都是window
- 定时器的this指向window
- 事件里面的this 指向触发事件的元素
- 构造函数里的this指向他的实例
2.怎样替换函数内的this
(1) Call()
(2) Apply
(3) Bind()
Afn.call(B,5) B取代了fn中的this并把fn调用了。
Call和apply,bind只能是函数(方法)或者函数对象的
var a=45;
var b={
a:12
}
var arr=[12,56]
function fn(){
console.log(this.a)
}
fn.call(b) call前面必须是函数对象,其他的不行
2.面向对象
1.单例模式
Var obj={}
2.工厂模式
function fn(){
Var obj={}
obj.name=”zhang”
return obj;
}
3.构造函数 三个特点 函数名首字母大写 函数的属性前面加this 函数调用用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,每存放一个变量就会生成一个内存地址。
在执行模块 a=12; 先通过内存地址查找有没有a,有就直接赋值给a,没有就是undefined
赋值
- 基本数据类型 就直接赋值
- 引用数据类型 把内存地址赋给变量
var obj={
name:"zhangsan"
}
var person=obj;
person.name="lisi"
console.log(obj.name)

基本数据类型在赋值的时候就是简单的操作值
引用数据类型在赋值的时候,把内存地址赋值给变量,在操作引用数据类型的时候,首先通过内存地址去找到里面的东西,然后操作。(引用数据类型在赋值的时候,首先开辟一个堆内存,存放里面的代码块,然后把内存地址赋值给变量。在操作这个变量时候会通过内存地址去查找,然后修改里面的东西)
引用数据类型 object array function 前两个都是以键值对的形式存放,而后一个以字符串的形式存放。
11-22 JS中级复习的更多相关文章
- Js中级复习
		JS中级复习—— 1,this 就是js的关键字 用途:指向某一个对象 如何判断this指向: 函数(方法)内—— 一种以函数的方式调用(不带.)this指向window 一种以方法的形式调用(函 ... 
- 11.1     js中级,数据类型、数据储存方式、作用域内存空间的区别以及例识别。
		一. 基本数据类型和引用数据类型的区别. 1.基本数据类型:基本数据类型就是简单的操作值. 2.引用数据类型:就是把引用的地址赋给变量. 堆内存: 就是存放代码块的,存放形式有两种 1)对象以键值对的 ... 
- codefordream 关于js中级训练
		中级训练接着就紧锣密鼓的开始了. 首先是关于变量,变量的作用是给一个数据值标注名称. 注:JavaScript中变量名,函数名,参数名的命名规范:至少由字母,下划线,美元符号,数字其中的一种组成,但不 ... 
- lambda的使用ret = filter(lambda x : x > 22 ,[11,22,33,44])
		#!/usr/bin/env python #def f1(x) : # return x > 22 ret = filter(lambda x : x > 22 ,[11,22,33,4 ... 
- #有如下值集合[11,22,33,44,55,66,77,88,99,90...],将所有大于66值保存至字典的一个key中,将小于66的值保存至大二个key的值
		#!/usr/bin/env python #有如下值集合[11,22,33,44,55,66,77,88,99,90...],将所有大于66值保存至字典的一个key中,将小于66的值保存至大二个ke ... 
- JS基础 复习: Javascript的书写位置
		爱创课堂JS基础 复习: Javascript的书写位置复习 js书写位置:body标签的最底部.实际工作中使用书写在head标签内一对script标签里.alert()弹出框.console.log ... 
- jquery-1.11.1.js
		每次想要使用这个js时,总是要到官网上下载,太麻烦,现在把它收录了 jquery-1.11.1.js /*! * jQuery JavaScript Library v1.11.1 * http ... 
- 08 集合[11,22,33,44,55,66,77,88,99],将所有<66的值保存至字典的第一个key中,将所有>=66的值保存至字典的第二个key中。即:{'k1':<66的所有值,'k2':>=66的所有值}
		li = [11,22,33,44,55,66,77,88,99]dict = {'k1':[],'k2':[]}for i in li: if i < 66: dict[& ... 
- 2.22 JS处理富文本
		2.22 JS处理富文本 前言 <富文本>这篇解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的问题一.加 ... 
随机推荐
- Hadoop的namenode的管理机制,工作机制和datanode的工作原理
			HDFS前言: 1) 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 2)在大数据系统中作用: 为各类分布式运算框架(如:mapr ... 
- [转] Async/Await替代Promise的6个理由
			Node.js 7.6已经支持async/await了,如果你还没有试过,这篇博客将告诉你为什么要用它. Async/Await简介 对于从未听说过async/await的朋友,下面是简介: asyn ... 
- [转] 谈谈JS中的函数节流
			函数节流的目的 从字面上就可以理解,函数节流就是用来节流函数从而一定程度上优化性能的.例如,DOM 操作比起非DOM 交互需要更多的内存和CPU 时间.连续尝试进行过多的DOM 相关操作可能会导致浏览 ... 
- 使用jquery获取父元素或父节点
			使用jquery获取父元素或父节点,比较简单,jquery提供了丰富的方法来让我们使用jquery获取父元素或父节点 jquery获取父元素方法比较多,比如parent(),parents(),c ... 
- python全栈开发day58-mysql存储过程,权限,索引,慢日志,执行计划,分页优化处理
			1.存储过程 delimiter // create procedure insert_data(in rows int) begin DECLARE n INT DEFAULT 1; drop ta ... 
- python 进阶读书笔记1 -- 理解python一切皆对象
			理解python一切皆对象: 1.所有的类都是由type创建的 2.所有的类的基类都是object 3.type是类,也是实例,type的基类是object,type对象是由type创建的 4.obj ... 
- mongodb中投票节点作用
			投票节点 并不含有 复制集中的数据集副本,且也 无法 升职为主节点.投票节点的存在是为了使复制集中的节点数量为奇数,这样保证在进行投票的时候不会出现票数相同的情况.如果添加了一个节点后,总节点数为偶数 ... 
- Zabbix监控Tomcat案例
			今天在这里,我们来聊一聊JMX监控方式, JMX(java管理扩展程序)是java平台上为应用程序,设备,系统等植入管理功能的框架,JMX可以跨越一系列不同的系统平台,更加灵活的服务管理应用: 在za ... 
- Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第四集之安装Linux】
			1,确保Linux镜像的路径存在 2,启动 3,在真实机情况下,进入BIOS修改安装操作系统的路径[记住:虚拟机不需要这一步.] 如果是真实机安装Linux,默认是从硬盘中安装,而不是从光盘.这就需要 ... 
- 斐波那契数列-java编程:三种方法实现斐波那契数列
			题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行 斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 这个数列 ... 
