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 前两个都是以键值对的形式存放,而后一个以字符串的形式存放
js中级总结的更多相关文章
- codefordream 关于js中级训练
		中级训练接着就紧锣密鼓的开始了. 首先是关于变量,变量的作用是给一个数据值标注名称. 注:JavaScript中变量名,函数名,参数名的命名规范:至少由字母,下划线,美元符号,数字其中的一种组成,但不 ... 
- Js中级复习
		JS中级复习—— 1,this 就是js的关键字 用途:指向某一个对象 如何判断this指向: 函数(方法)内—— 一种以函数的方式调用(不带.)this指向window 一种以方法的形式调用(函 ... 
- 我的JS 中级学习篇
		在codefordream上进入中级学习后,感觉立马从js的基础学习往前跳了好远,上面的东西好像都是第一次看到一样.这时候才发现,说来也曾接触过js,但是这时候才发现对js的认识就停在知道两点:js中 ... 
- JS中级 - 02:表单、表格
		getElementsByTagName() getElementsByTagName() 方法可返回带有指定标签名的对象的集合. getElementsByClassName() 返回文档中所有指定 ... 
- js中级6
		1.动画 (1)Css样式提供了运动 过渡属性transition 从一种情况到另一种情况叫过渡 transition:time linear de ... 
- 11-22 JS中级复习
		1.this js的关键字, 用途:指向某一个对象. 如何判断this指向 函数(方法)内 一种以函数的方式调用(不带.) this指向winodw 一种以方法的形式调用(函数名前面带.)this指向 ... 
- js中级小知识5
		元素的属性 div.attributes是所有标签属性构成的数据集合 div.classList是所有class名构成的数组集合 在classList的原型链上可以看到add()和remove() 1 ... 
- js中级小知识4
		1.针对表单 form input select textarea type="radio/checkbox/passdord/button/submit/reset/ ... 
- js中级小知识2
		1.面向对象 js一开始就是写网页特效,面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差.所以作者就收到java和c的影响,往面向对象靠齐.js天生有一个Objec ... 
- js中级小知识1
		首先我们复习之前的小知识,本期博客与之前有关 js数据类型 基本数据类型:string undefined null boolean numbe ... 
随机推荐
- C++ primer 第四版 练习3.13,3.14
			读一组整数到 vector 对象,计算并输出每对相邻元素的 和.如果读入元素个数为奇数,则提示用户后一个元素 没有求和,并输出其值. vector<int> ivec; int ival; ... 
- XP停服务,卡巴当后盾——卡巴斯基反病毒软件2014(一年版)
			领取地址:http://xp.kaba365.com/3180000.asp 活动说明活动时间:2014年4月9日零时起赠送产品:卡巴斯基反病毒软件2014(一年版)激活码.赠送对象:中国大陆所有XP ... 
- 安装sybase服务器并连接数据库
			一. 安装sybase服务器(根据安装指南安装) win32位的系统安装1550_winx86_32+补丁包eBF18157 win64位的系统安装ase157_winx64_安装包 如果不创建服务器 ... 
- windows server 账号克隆
			在dos命令行下隐藏用户的方法: net user 账户 密码 /add 如果在账号后加 $ 符号 这个账户在cmd命令行下是无法看见的 首先我们设置注册表权限 cmd = > regedt ... 
- NSJSONSerialization的简单用法
			NSJSONSerialization 苹果官方给出的解析方式是性能最优越的,虽然用起来稍显复杂. 首先我们在上面已经有了我希望得到的信息的网站的API给我们的URL,在OC中,我要加载一个NSURL ... 
- iOS 工程自动化 - OCLint
			前言 最近一直在做 iOS 工程自动化方向的事情,所以把自己研究和实践的内容进行记录并分享,希望能给大家一些帮助. 为什么要使用 OCLint 做为一个静态代码分析工具,我们引入 OCLint 的目的 ... 
- Dockerfile构建mysql数据库
			dockerfile文件: FROM centos:centos6 MAINTAINER admin "admin@topsec.com.cn" RUN yum insta ... 
- C高级第一次PTA作业 要求三
			要求一.要求二 内容链接:http://www.cnblogs.com/X-JY/p/8550457.html 一.PTA作业中的知识点总结 1.6-1 计算两数的和与差(10 分) (1)*在程序中 ... 
- Mongodb  $setOnInsert操作符 和upsert:true
			upsert:true:如果要更新的文档不存在的话会插入一条新的记录 $setOnInsert操作符会将指定的值赋值给指定的字段,如果要更新的文档存在那么$setOnInsert操作符不做任何处理: ... 
- WPF 第三方控件
			目前第三方控件在网上形成巨大的共享资源,其中包括收费的也有免费的,有开源的也有不开源的,合理的使用第三方控件将使项目组的工作事半功倍.比如项目中有些复杂的业务逻辑.有些绚丽的效果需要有专门的定制控件才 ... 
