Js中级复习
JS中级复习——
1,this 就是js的关键字
用途:指向某一个对象
如何判断this指向:
函数(方法)内——
一种以函数的方式调用(不带.)this指向window
一种以方法的形式调用(函数名前面带.)this指向点前面的
函数(方法)外
this指向window
this指向的特例:
自调用函数的this都是window
定时器里的this指向window
事件里面的this指向出发事件的元素
构造函数里的this指向他的实例
2,怎样替换掉函数内的this
call();apply();bind() 只能是函数(方法),或者是函数对象
3,面向对象:
单例模式——
var obj={ }
工厂模式——
function fn(){
var obj={ }
obj.name=“zhang”
return obj
}
构造函数——
三个特点:
函数名首字母必须大写;函数属性前面加this;函数调用用new关键字;
function person(name){
this.name=name
}
var zhang=new person(“zhang”)
原型分析:
每个构造函数天生自带一个prototype属性,叫原型,他是一个对象,存放父类可继承的属性
函数内的属性是子对象,天生就是继承的,不需要任何操作
prototype上的属性是继承给予对象的,子对象必须通过__proto__(原型链)来查找
每个子对象都有一个__proto__,他指向父类的原型
原型链:
子对象在操作一个属性时,首先看属性是不是私有的,私有的就直接使用,没有就通过__proto__向子对象的父类查找,父类有就使用,没有就用父类的__proto__继续向上查找,直到基类object为止,没有就undefined。
4,作用域或作用域链:
浏览器客户端给js一个生存环境
js代码在执行之前,浏览器会给js一个生存环境window;会分成两个模块,一个内存,一个执行;内存模块在代码执行之前就完成了,存放关键字var和function,每存放一个变量就会生成一个内存地址
赋值:
基本数据类型---简单的赋值
引用数据类型---把内存地址赋值给变量
基本数据类型:
基本数据类型在赋值的时候,就是简单的操作值
引用数据类型:
引用数据类型在赋值的时候,把内存地址给变量,在操作引用数据类型的时候,首先通过内存地址去找到里面的东西,然后操作
(引用数据类型在赋值的时候,首先会开辟一个堆内存,存放里面的代码块,然后会把内存地址赋值给变量,在操作这个变量的时候,会通过内存地址去查找,然后修改里面的东西)
引用数据类型:
object array function
object,array 以键值对形式存放
function以字符串形式存放
scroll:
我们学习的client和offset,scrollwidth和 scrollheight 只读
scrolltop,scrollleft,可读可写属性
scrolltop最小值是0,存在边界值,当它为0是回到容器的顶部
最大值是真是高度----当前容器一屏幕的高度,scrollheight,clientheight
函数中止用return
for循环中止用break