javascript闭包
胡龙
目录
js闭包简介
闭包与javascript模块编程
面向对象
Js闭包优缺点
Js闭包简介
闭包:是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量。
<script>
function function1()
{
var property;
=function() {}
}
<script>
Js闭包简介
Javascript变量作用范围
<script>
var property1;
function function1()
{
var property2;
=function()
{
var property3;
}
}
<script>
window对象
property1
function1()
function1对象
property2
function2()
function2对象
property3
闭包与js模块化编程
安全性:JavaScript 被模块化只留下供外界调用的接口。
效率高:各模块耦合性低,结构清晰,可读性强,提高开发效率。
易维护:需求变动时,只需修改局部模块,降低维护难度及维护成本。
易扩展:高内聚、低耦合的系统结构,使系统更灵活、更容易扩展。
面向对象
面向对象-封装
function classA()//定义classA类
{
var name = "小明";
var age = 20;
=function()
{
(name + "今年" + age);
}
}
var getstring = new classA();
//使用mathed方法
();
//使用name属性
if () { (name); }
else { ("name is undifine"); }
//使用age属性
if () { (age) }
else { ("age is undifine");}
面向对象-继承
对象冒充
call()方法方式
原型链方式
apply()方法方式
//父类函数
function Parent(Pname)
{
= function ()
{
(Pname);
}
}
继承:对象冒充
function Parent(Pname)
{
=function()
{
(Pname);
}
}
function Child(name,age)
{
= Parent;
(name);
delete ;
= function ()
{
(name + "年龄" + age);
}
}
//实例化
var pmethod = new Parent("父亲");
();
var mymethod = new Child("孩子",20);
();
();
//第一步:,并且指向Parent所指向的对象, //第二步:,即执行Parent所指向的对象函数 //第三步:,即此时Child就已经拥有了Parent的所有属性和方法
继承:call()方法
function Parent(Pname)
{
=function()
{
(Pname);
}
}
function Child(name,age)
{
(this, name);
= function ()
{
(name + "年龄" + age);
}
}
//实例化
var parent = new Parent("父亲");
var child = new Child("孩子",20);
parent.
javascript闭包2 来自淘豆网m.daumloan.com转载请标明出处.