一、匿名函数:没有函数名;单独的匿名函数是无法运行的,可通过把匿名函数赋值给变量来运行。
var dd = (function(){
return 'jack';
})();
alert(dd);// jack
二、块级作用域(私有作用域):
function box(){
{//for:块级作用域: 出了for的范围,i值未被销毁,而且不会被后面的重复声明覆盖掉
for (var i=0; i < 5; i++)
};
var i ; //但重新给i赋值则会覆盖掉原来的值
alert(i); //还是返回5:重新声明后值不会变
}
//使用块级作用域: 即使i出了块级作用域后就销毁
function box(){
(function(){//用包含自我执行的匿名函数来实现块级作用域
for(var i=0; i<5; i++){
alert(i);//变量i出了匿名函数后即被销毁
}
})();
alert(i);//出了匿名函数,i会不被识别
}
块级作用域用处:代替全局作用域。
//使用块级作用域实现,防止变更污染,不会有内存占用问题:匿名函数执行完就被销毁了
(function(){
var age = 150;
alert(age);
})();
alert(age);// 报未定义错误,说明 age在全局作用域中不会被访问到
三、私有属性(私有变量)
私有化运行机制:方式1:特权方法实现
function Box(){
var age = 100; //私有属性
function run(){ //私有方法
return '运行中....';
};
this.publicMethod = function(){//外部 可以访问的公共接口(特权方法)
return age + run();
};
}
var box = new Box();
//可以访问到函数内部私有的属性和方法
alert(box.publicMethod());
私有化运行机制:方式2:构造方法传参实现
function Desk(value){
var user = value; //私有变量
this.getUser = function(){//方法不会共享
return user;
};
this.setUser = function(value){//可通过特权方法实现赋值
user = value;
};
}
var d1 = new Desk('Lee');
var d2 = new Desk('kkk');
alert(d1.getUser());//返回Lee
alert(d2.getUser());//返回kkk
私有化运行机制:方式3:通过静态私有属性实现(即可以被不同的实例共享的属性):
(function (){ //匿名函数内部的构造函数外部无法访问,需将其设为全局变量方可
var user = ""; //私有变量
// Box = function(value){// 不加var,创建一个全局的构造 函数,使得外面可以访问
// user = value;
// this.getUser = function(){
// return user;
// };
// }; //一般不通过此方法共享
Box = function(value){// 一般通过原型来实现静态私有属性的访问,且属性是共享的
user = value;
};
Box.prototype.getUser = function(){
return user;
};
Box.prototype.setValue = function(value){
user = value;
};
})();
var b1 = new Box('lee');
var b2 = new Box('kkkk');
alert(b1.getUser());//返回lee
alert(b2.setUser('oooo'));
alert(b1.getUser());//此时会返回ooo, 因为是共享的
相关推荐
### JavaScript中的匿名函数 在JavaScript编程语言中,**匿名函数**是一种非常实用且常见的特性,它们没有具体的名称,通常作为参数传递给其他函数或者在需要函数作为值的地方使用。这种类型的函数可以增加代码的...
匿名函数是JavaScript语言中的一个强大特性,它允许我们不给函数命名,直接声明并执行。在本文中,我们将深入了解匿名函数的定义、特点、代码模式以及应用。 首先,需要明白什么是匿名函数。在JavaScript中,定义...
JavaScript中的匿名函数是一种不具有名称的函数,它们主要通过函数表达式或Function构造函数来创建。匿名函数在JavaScript中有着广泛的应用,特别是在处理模块化、防止全局变量污染、以及实现函数式编程等方面。 1....
JavaScript中的匿名函数是一种没有明确标识符的函数表达式,它可以在需要时被立即执行或作为其他数据结构的一部分使用。在JavaScript中,函数是第一类对象,这意味着它们可以被赋值给变量、作为参数传递和作为其他...
3. **匿名函数与立即执行函数**:在JavaScript中,我们还可以使用匿名函数,即没有名字的函数,通常用于一次性执行的任务。而立即执行函数(IIFE, Immediately Invoked Function Expression)则是一种特殊的匿名函数...
JavaScript中的匿名函数是一种不具有名称的函数,它们主要通过函数表达式或Function构造函数来创建。匿名函数在JavaScript中有着广泛的应用,特别是在避免全局变量污染、实现模块化和函数式编程等方面。以下是对匿名...
本话题将深入探讨JavaScript中的匿名函数及其在面试中常见的命名问题。 匿名函数,顾名思义,就是没有名字的函数。它们通常以表达式的形式出现,如`function() { ... }`或`(function() { ... })()`。在JavaScript中...
在讨论JavaScript编程语言时,匿名函数和闭包是两个重要的概念,它们在函数式编程和模块化代码设计中扮演着核心角色。匿名函数是没有具体名称的函数,它们可以是独立的,也可以是表达式的一部分,通常用于定义临时...
### 知识点:匿名函数在JavaScript中的应用与特性 #### 标题解析:“匿名函数的一点知识” 标题“匿名函数的一点知识”简洁明了地指出本文将围绕JavaScript中的匿名函数进行讲解,旨在帮助读者深入理解匿名函数的...
JavaScript中的闭包、匿名函数和作用域链是编程中至关重要的概念,它们是理解JavaScript运行机制的关键。在本文中,我们将深入探讨这三个概念,并通过实际示例来展示它们的运用。 首先,我们来讨论“闭包”。闭包是...
在JavaScript中,匿名函数、函数直接量和闭包是三种非常重要的概念,它们在编程实践中有着广泛的应用。让我们逐一深入探讨这些概念。 1. **匿名函数**: 匿名函数是指没有名字的函数,通常作为表达式的一部分存在...
3. **函数**:定义函数、传递参数、返回值、匿名函数和箭头函数的概念。 4. **数组**:创建数组、访问和修改数组元素、数组方法(如push、pop、shift、unshift、slice、splice等)。 5. **对象**:创建对象、访问和...
匿名函数 5.5 匿名函数 函数表达式 概念:所谓函数表达式指的是将声明的函数赋值给一个变量,通过变量完成函数的调用和参数的传递,它也是JavaScript中另一种实现自定义函数的方式。 5.5 匿名函数 函数表达式 var fn...
在JavaScript中,匿名函数是一种没有名称的函数,通常作为参数传递或者用于立即执行。在上述文档中,我们看到几种不同的匿名函数使用方式: 1. **匿名函数自执行**:`(function(){})()`,这种写法会立即执行该匿名...
JavaScript中的匿名函数和闭包是两个非常重要的概念,它们在函数式编程和模块化开发中起着关键作用。 首先,让我们来理解匿名函数。匿名函数,顾名思义,是没有名称的函数。在JavaScript中,我们可以直接定义一个不...
本文将详细阐述JavaScript匿名函数的定义、不同定义方式、与Function构造函数的区别,以及匿名函数的常见使用模式和应用场景。 **一、匿名函数的定义** 在JavaScript中,匿名函数可以通过以下三种方式创建: 1. *...