JS原生基础终结篇 (帅哥)
闭包 基础 面向对象基础
1.1 闭包
在程序语言中,所谓闭包,是指语法域位于某个特定的区域,具有持续参照(读写)位于该区域内自身范围之外的执行域上的非持久型变量值能力的段落。这些外部执行域的非持久型变量神奇地保留他们在闭包最初定义(或创建)时的值。
白话: 我们可以用一个函数 去访问 另外一个函数的内部变量的方式就是闭包。
内部变量 是 局部变量 那我们知道,局部变量是不可以为别人随便使用也。
function fun() {
var num = 10;
}
console.log(num); // 这样子就错了 num 是一个局部变量
测试题
1 function outerFun()
2 {
3 var a=0;
4 function innerFun()
5 {
6 a++;
7 alert(a);
8 }
9 return innerFun; //注意这里
10 }
11 var obj=outerFun();
12 obj(); obj();
13 var obj2=outerFun();
14 obj2(); obj2();
15 结果是 : 1 2 1 2
闭包的优点 :
优点:不产生全局变量,实现属性私有化。
缺点:闭包中的数据会常驻内存,在不用的时候要删掉否则会导致内存溢出。
1.2 对象(object)
对象是什么?
基本数据类型 string number boolean null undefined
Array 对象
对象数据类型: 对象就是带有属性和方法的 数据类型
var num = 10; // 变量
var arr = []; // 数组
arr.index = 10; // 数组arr 的 一个 index 属性
但是有个问题, 我们想要某些属性或者方法的时候,用数组不合适。
arr.lenght .
我们想要自己id属性和方法 。 要求这个一定是个对象才行。
1.2.1 声明对象
我们有两种声明对象的方式.
var obj = new Object();
但是我们更提倡用第二种方法: 字面量式声明对象
var obj = {};

1.2.2 使用对象

1.2.3 面向对象
面向对象里面:类和对象
类是对象的抽象,而对象是类的具体实例
一切事物皆对象 JavaScript 一切皆对象
类 和 对象
对象 女朋友
小胡 你有对象了吗? 泛指 女朋友
旁边坐的那个女生是你对象吗? 特指 某一个女朋友
大家喜欢吃苹果吗? 泛指 类
你手里的那个苹果甜吗? 特指 对象 (具体的实例)
面向对象的特性
1. 抽象
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
2. 封装
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面
3. 继承
4. 多态
多态是指两个或多个属于不同类的对象,对于同一个消息(方法调用)作出不同响应的方式

1.2.4 new
新的 我们经常利用new 关键字 去声明新的对象
javascript
new运算符的作用是创建一个对象实例。这个对象可以是用户自定义的,也可以是带构造函数的一些系统自带的对象。
new 关键字可以让 this 指向新的对象
所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量。对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例对象上。
1.2.5 prototype
共同的 相同的 部分
主要解决:函数因为使用非常非常多,重复执行效率太低。

类.prototype.方法 = function() {} 具体格式
可以把那些不变的属性和方法,直接定义在prototype对象上
使用方法:
类名.prototype.方法
JS原生基础终结篇 (帅哥)的更多相关文章
- 15、js 原生基础总结
Day1 一.什么是JS? ==基于对象==和==事件驱动==的客户端脚本语言 二.哪一年?哪个公司?谁?第一个名字是什么? 1995,NetScape(网景公司),布兰登(Brendan Eic ...
- JS原生第三篇 (帅哥)
1.1 数 组 1. 数组 看电影 电影院 座位 大的变量 里面可以放很多的值 var arr = [1,3,57]; var ar = new Array(); ...
- JS原生第八篇 (帅哥)
1.1 复习 1. clientX clientWidth 可视区域的宽度 clientWidth width + padding offsetWidth ...
- JS原生第七篇 (帅哥)
1.1 复习 offset 自己的 偏移 offsetWidth 得到自己的宽度 offsetHeight 构成 : width + padding + border div ...
- JS原生第六篇 (帅哥)
复习 按钮不可用 disabled = "disabled" || true setTimeout 只执行一次 setInterval 执行很多次 递归调用 ...
- JS原生第五篇 (帅哥)
1.1 节点 1. 节点 网页是有很多的节点组成的 . 元素节点 指的是 : 标签 li span 文本节点 属性节点 父子兄弟 父 parent ...
- JS原生第四篇 (帅哥)
1.1 1. 循环 for(初始化; 退出条件; 增量) { } while(退出条件) { } do { 语句 } while(退出条件) 2. switch( ) 多选1 ...
- arcgis api 4.x for js之基础地图篇
arcgis api3.x for js转向arcgis api4.x,我也是最近的3-4个月时间的事情,刚好公司有个webgis项目需要展示三维场景,项目选择arcgis api4.x.我纯碎记录一 ...
- JS组件系列——表格组件神器:bootstrap table(三:终结篇,最后的干货福利)
前言:前面介绍了两篇关于bootstrap table的基础用法,这章我们继续来看看它比较常用的一些功能,来个终结篇吧,毛爷爷告诉我们做事要有始有终~~bootstrap table这东西要想所有功能 ...
随机推荐
- js中push(),pop(),unshift(),shift()的用法小结
1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及内容. 不同的是 push().pop() 是从数组的尾部进行增减,unshift ...
- UTC时间和本地时间的区别
在用AS3的Date时,年月日都有两个api,带UTC和不带UTC的,比如fullYear,fullYearUTC 输出看一下: var date:Date = new Date; trace(dat ...
- centos 7 安装和配置vncserver
前期准备: 关闭防火墙,centos的防火墙是firewalld,关闭防火墙的命令 systemctl stop firewalld.service 关闭enforce setenforce 0 ce ...
- JavaScript-String基础知识
1.字符串可以0个或多个字符串放在一起: " ' ' ".'""' . "\"\"" 2.写法 ...
- ANGULAR $HTTP请求【转】
angular使用post.get向后台传参的问题 一.问题的来源 我们都知道向后台传参可以使用get.put,其形式就类似于name=jyy&id=001.但是在ng中我却发现使用$http ...
- DEDE 常用的调用方法
DEDE织梦常用的调用常规调用: 网站名称调用:<title>{dede:global.cfg_webname/}</title> 网站关键词调用:<meta name= ...
- mark
*求数根公式:a的数根b = (a-1) % 9 + 1; *约瑟环问题:f1 = 0; 第i个(i>1),f = (f+m) %i;
- 有状态Bean和无状态Bean的定义
有状态会话bean :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”:一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束.即每个用户最初都会得到一个初 ...
- can't connect to mysql server on 'localhost'(10061)
在linux下安装Navicat,想说在windows下试一试phpmyadmin之外的mysql图形工具. 显示下载安装了mysql workbench,链接成功.然后又弄了一下输入法重启,想说试一 ...
- 谁说JavaScript容易?
你尝试过给一组数字排序吗? Javascript的sort()方法默认用来给数字排序 所以[1,2,5,10].sort()将会输出[1, 10, 2, 5]. 要正确的对数组进行排序的话,你可以使用 ...