数组/闭包/作用域

2017-01-06  本文已影响0人  码农的世界你不懂

一、数组的常见操作

pop() 删除最后一个

shift() 删除第一个

push() 追加 添加到最后面

unshift() 添加到 第一个位置

一、闭包技术详解

1.1 什么是闭包?

function A(){ 
   function B(){ 
       console.log("Hello XMG!");
   } 
   return B; 
} 
var b = A(); 
b();//Hello XMG!

**1.2 **封闭作用域

JavaScript的GC机制

封闭作用域

(function(){})();
;(function(){})();
+(function(){})();
-(function(){})();
?(function(){})();

1.3 作用域链

变量的生命周期 任何一个变量在内存中都是一个引用,这个变量是有自己的生命周期。周期结束意味着被销毁。 一个变量在它当前的作用域内被声明那一刻相当于变量出生,整个当前作用域执行完毕并退出作用域相当于变量的寿命终止。

1.4 保存作用域

var A=function(){
         return function(){};
     }

二、面向对象

对象是什么?
对象就是带有属性和方法的数据类型!

任何一门高级语言都要面向对象,JavaScript则是基于原型的面向对象语言,因此,我们的思维要由面向过程转向面向对象

类 和 对象

 对象 女朋友
 小白 你有对象了吗? 泛指 女朋友
 昨天陪你打LOL的那个女生是你对象吗? 特指 某一个女朋友

 在座的有喜欢吃香蕉的吗?
 你手中那根香蕉熟了吗? 特指对象(具体的实例)

面向对象的特性:

Snip20170106_3.png

2.1 构造函数

所有的构造函数有一个特点:首字母大写;

在js中我们可以理解为只要执行以后能够返回新的对象的函数就是构造函数。

2.2 关键词new

2.3 构造器(constructor) 和 原型属性 (prototype)

在任何一个对象中都有构造器和原型属性,包括原生的对象,比如: Date, Array等;

prototype它的作用就是构造函数的一个共享库;在这个共享库里面存储的所有数据将来都会被所有的新对象公用。 这样大大降低了创建方法的成本。

第一:自动将原型库中的所有内容都放在将来的对象身上;

第二:如果共享库中的内容发生变化会自动更新所有对象上的数据。

注意:

第一:如果在事件的作用域中,this的指向会变成事件源。

第二:如果在定时器的作用域中,this的指向会变成window。

解决方案:备份指针

上一篇下一篇

猜你喜欢

热点阅读