面向对象高级( 随手记-4)
来源:互联网 发布:济宁网络问政平台登录 编辑:程序博客网 时间:2024/03/29 03:20
成员: 包含了对象的属性和方法
实例: 由构造函数创建出来的对象
静态成员: 与构造函数相关的成员(由构造函数访问到的成员)
实例成员: 由实例对象能够直接访问到的成员
实例成员和静态成员 是无法直接访问的
间接访问: p.constructor.test();
jQuery中的实力成员 和静态成员
$ 或 jQuery 在jQuery库中可以被看做是构造函数
$() 这个方法的返回值就是: jQuery对象(jQuery的实例对象)
each 两种方法:
$('div').each(function(){}); ===>实例成员
$.each(function(){}) ===>静态成员 $.ajax
jQuery中与dom相关的都是实例方法
只要是与dom没有必然关系的 都作为:静态方法
静态方法 each
//可以遍历数组也可以遍历对象
$.each(function(index,value)){}; 索引/值 $(value)==$(this)
最佳实践:最好的方法
将代码逻辑放到静态成员中,实例成员直接调用静态成员中的方法
这样代码就实现了一份
_________________________________________________
与函数相关的成员介绍:
name: 用来获取当前名称 string
length : 用来获取形参的个数
caller(废弃了)
特点:1.只能在函数内部使用(可以把当成函数内部的局部变量);
2.每一个函数内部都有arguments属性
3.作用:用来获取实例参数列表
4.类型是 伪数组(类似数组的对象) (不是数组,不能使用数组方法)
arguments的属性:
1. .length 作用:获取实参的个数
2. .callee 作用:获取当前函数的引用(自身 ) //自己调用自己
可能用到
(function(){arguments.callee();})()
_____________________________________________
递归的概念:
一个函数自己调用自己.这样就行成了递归
函数在被调用的时候,是需要占用内存的,占用内存多了以后,
就会导致:内存溢出
如何写递归??
1.将解决的问题转化为已经解决过的问题上去 //化归思想
2.找到临界条件让函数停止调用 //找到停止的条件
创建伪数组:
1.具有length属性
2.可以通过索引号 来访问 伪数组中的元素
var obj={}
obj[0]='xm'
obj.length=1
jquery 对象本质上就是一个:伪数组
____________________________________________
作用域:
变量起作用的区域(范围)
作用域分为两种:
1.块级作用域(js不支持)
一个代码块能够形成一个独立的作用域
ES6中提供了一个 :let关键字
2.词法作用域(函数作用域)
又称为:函数作用域 (在js中只有函数能够形成一个独立的作用域)
一个变量在声明的时候,变量的作用域范围就已经定下来了(不会发生
改变) 与 运行时 无关
变量的作用域只跟声明的位置有关,在什么(位置)时候使用没有关系
作用域思路:
1.只看函数是在哪个环境中创建的,而不管函数是在哪个环境中调用的
2.不管函数是在哪个环境中调用的,最终都要回到他创建的环境中执行
分析作用域面试题的思路:
1.先提升
2.在分析
JavaScript代码执行过程
1.预解析(变量或函数提升)
2.一行一行的执行代码
对于变量来说,提升的是:声明
对于函数来说,提升的是:函数体
函数表达式与函数声明的区别
function fn(){} //函数声明 提升的是函数体
var fn = function(){} //函数表达式 提升的是函数名
不同点:
1.提升机制不一样;
2.表达式中 func 后面 可以省略函数名,如果有名字只能在函数内部使用
函数声明: (规范)
1.只能出现在全局环境中
2.在其他函数中
如果 要在代码块中使用函数,推荐使用函数表达式
首先在当前作用域中查找变量
并且变量查找的时候,查找的是变量声明
声明的全局变量,相当于window 的属性
作用域链:函数有自己的作用域,如果函数是被包裹的,包裹他的也有
作用域
变量的搜索 就是沿着作用域链进行搜索的
笔记连载中 , 温故而知新!
实例: 由构造函数创建出来的对象
静态成员: 与构造函数相关的成员(由构造函数访问到的成员)
实例成员: 由实例对象能够直接访问到的成员
实例成员和静态成员 是无法直接访问的
间接访问: p.constructor.test();
jQuery中的实力成员 和静态成员
$ 或 jQuery 在jQuery库中可以被看做是构造函数
$() 这个方法的返回值就是: jQuery对象(jQuery的实例对象)
each 两种方法:
$('div').each(function(){}); ===>实例成员
$.each(function(){}) ===>静态成员 $.ajax
jQuery中与dom相关的都是实例方法
只要是与dom没有必然关系的 都作为:静态方法
静态方法 each
//可以遍历数组也可以遍历对象
$.each(function(index,value)){}; 索引/值 $(value)==$(this)
最佳实践:最好的方法
将代码逻辑放到静态成员中,实例成员直接调用静态成员中的方法
这样代码就实现了一份
_________________________________________________
与函数相关的成员介绍:
name: 用来获取当前名称 string
length : 用来获取形参的个数
caller(废弃了)
作用: 表示当前函数是在哪个函数中调用的(指向了外层函数)
arguments (重要)特点:1.只能在函数内部使用(可以把当成函数内部的局部变量);
2.每一个函数内部都有arguments属性
3.作用:用来获取实例参数列表
4.类型是 伪数组(类似数组的对象) (不是数组,不能使用数组方法)
arguments的属性:
1. .length 作用:获取实参的个数
2. .callee 作用:获取当前函数的引用(自身 ) //自己调用自己
可能用到
(function(){arguments.callee();})()
_____________________________________________
递归的概念:
一个函数自己调用自己.这样就行成了递归
函数在被调用的时候,是需要占用内存的,占用内存多了以后,
就会导致:内存溢出
如何写递归??
1.将解决的问题转化为已经解决过的问题上去 //化归思想
2.找到临界条件让函数停止调用 //找到停止的条件
创建伪数组:
1.具有length属性
2.可以通过索引号 来访问 伪数组中的元素
var obj={}
obj[0]='xm'
obj.length=1
jquery 对象本质上就是一个:伪数组
____________________________________________
作用域:
变量起作用的区域(范围)
作用域分为两种:
1.块级作用域(js不支持)
一个代码块能够形成一个独立的作用域
ES6中提供了一个 :let关键字
2.词法作用域(函数作用域)
又称为:函数作用域 (在js中只有函数能够形成一个独立的作用域)
一个变量在声明的时候,变量的作用域范围就已经定下来了(不会发生
改变) 与 运行时 无关
变量的作用域只跟声明的位置有关,在什么(位置)时候使用没有关系
作用域思路:
1.只看函数是在哪个环境中创建的,而不管函数是在哪个环境中调用的
2.不管函数是在哪个环境中调用的,最终都要回到他创建的环境中执行
分析作用域面试题的思路:
1.先提升
2.在分析
JavaScript代码执行过程
1.预解析(变量或函数提升)
2.一行一行的执行代码
对于变量来说,提升的是:声明
对于函数来说,提升的是:函数体
函数表达式与函数声明的区别
function fn(){} //函数声明 提升的是函数体
var fn = function(){} //函数表达式 提升的是函数名
不同点:
1.提升机制不一样;
2.表达式中 func 后面 可以省略函数名,如果有名字只能在函数内部使用
函数声明: (规范)
1.只能出现在全局环境中
2.在其他函数中
如果 要在代码块中使用函数,推荐使用函数表达式
首先在当前作用域中查找变量
并且变量查找的时候,查找的是变量声明
声明的全局变量,相当于window 的属性
作用域链:函数有自己的作用域,如果函数是被包裹的,包裹他的也有
作用域
变量的搜索 就是沿着作用域链进行搜索的
笔记连载中 , 温故而知新!
0 0
- 面向对象高级( 随手记-4)
- 面向对象高级( 随手记-1)
- 面向对象高级( 随手记-2)
- 面向对象高级( 随手记-3)
- 面向对象高级( 随手记-5)
- 面向对象高级( 随手记-6)
- 面向对象高级( 随手记-7)
- 第4章 面向对象高级知识
- 面向对象高级(一)
- 面向对象高级(二)
- 面向对象高级(三)
- 面向对象高级
- Java面向对象高级
- 面向对象高级
- 面向对象高级
- 面向对象高级编程
- 面向对象高级编程
- 面向对象(高级)
- [深度学习论文笔记][ECCV 16]Embedding Deep Metric for Person Re-identication A Study Against Large Variations
- 项目搭建中的遇到的问题
- opencv 鼠标选取图像感兴趣区域
- 存储登录密码及账号
- 爬虫学习日记二:相关图片的爬取(附代码)
- 面向对象高级( 随手记-4)
- 从np.random.normal()到正态分布的拟合
- 矩阵计算一些重要的结论及其证明
- Zoj 3956 Course Selection System【01背包】
- Telephone--短信发送/接收流程
- JZOJ1275.【USACO题库】2.4.5 Fractions to Decimals分数化小数
- c++第四次作业报告 项目2.3.4
- API的学习:TCP&&UDP
- Asp.Net控件GridView1绑定数据