`
阅读更多

js的作用域

我们要明确最基本的一点:

(1)在函数外面无法访问函数内的局部变量.

 

console.clear();
function test()
{
    var name2="whuang";
  console.log("name:"+name2);
  
}
console.log(name2);
test();

 运行时报错

 

 

解说:

变量name2是在方法test中定义的局部变量,所以在test方法外面是不可见的.

下面的代码是正确执行的:

 

var name2="whuang";
function test()
{
    
  console.log("name:"+name2);
  
}
console.log(name2);
test();

 

 

下面的代码会报错

 

console.clear();
function test()
{
    function inTest()
    {
      var name3="whuang";
      console.log("name:"+name3);
    
    }
  
    console.log(name3);
}

test();

 

 解说:name3是方法inTest里面的局部变量,所以在inTest方法外面是无法访问的.

 

 

 

 

 

(2)函数内部可以访问函数外面定义的局部变量

 

function test()
{
  var name3="whuang";
    function inTest()
    {
      
      console.log("name:"+name3);
    
    }
    inTest();
}

test();

 运行结果:

 

 

解说:在inTest方法内部可以访问inTest方法外面定义的局部变量.

 

(3)js的私有成员变量

通过以上两点,我们可以实现js中的私有成员变量

 

function Person()
{
  this.username="whuang";
  var sex='man';
 this.getSex=function()
  {
    return sex;
  }
  this.setSex=function(sex2)
  {
    sex=sex2;
  }
}

var person2=new Person();
console.log("username:"+person2.username);

person2.username="mudan";
console.info("username:"+person2.username);

console.info("sex:"+person2.sex);

 运行结果:

 

username:whuang
 
username:mudan
 
sex:undefined

解说:通过对象person2.sex无法访问到sex,因为sex不是Person的成员变量.

但是可以通过getSex方法和setSex方法访问

 

 

范例

 

function Person(name){ 
      
    this.getName=function(){ 
       return name; 
    }; 
  
    this.setName=function(value){ 
       name=value; 
    }; 
} 
  
var person=new Person("zxj"); 
console.log(person.getName());    //zxj 
person.setName("Greg"); 
console.info(person.getName());    //Greg

 运行结果:

 

 

 

注意:

(1)在函数外面无法访问函数里面声明的局部变量(使用var声明的);

(2)初始化未经声明的变量,总会创建一个全局变量

(3)字面量:使用json格式创建单例对象.例如{name:"whuang"}

参考:http://www.cnblogs.com/zxj159/archive/2013/06/03/3115139.html

http://blog.csdn.net/hw1287789687

  • 大小: 19.3 KB
  • 大小: 16.3 KB
  • 大小: 12 KB
  • 大小: 33.4 KB
  • 大小: 25.2 KB
0
0
分享到:
评论

相关推荐

    javascript变量作用域

    JavaScript 变量作用域详解 JavaScript 变量作用域是基于其特有的作用域链的。在 JavaScript 中,变量作用域是指变量可以被访问和修改的范围。 JavaScript 没有块级作用域,而是基于函数作用域和全局作用域的。 ...

    JavaScript作用域示例详解_.docx

    JavaScript作用域是编程中至关重要的概念,它规定了变量和函数的可见性和生命周期。了解JavaScript作用域对于编写高效、安全的代码至关重要。本篇将详细解释JavaScript作用域的几个核心特性,包括无块级作用域、函数...

    JavaScript作用域示例详解

    今天这篇文章对JavaScript作用域示例详解的介绍,希望能帮助大家更好的学习JavaScript。 任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命...

    js变量作用域

    ### JavaScript 变量作用域详解 #### 一、引言 在探讨JavaScript的面向对象特性之前,理解变量作用域的概念至关重要。本篇文章旨在通过一系列示例和解释,帮助读者掌握JavaScript中的变量作用域机制。 #### 二、...

    javascript执行环境及作用域详解_.docx

    ### JavaScript执行环境及作用域详解 #### 执行环境概述 执行环境定义了变量或函数能够访问的数据以及其他相关信息,它决定了这些变量和函数的行为方式。在JavaScript中,执行环境的概念至关重要,因为它不仅涉及...

    JS 作用域与作用域链详解

    1. 在JS中使用的是词法作用域(lexical scope) 不在任何函数内声明的变量(函数内省略var的也算全局)称作全局变量(global scope) 在函数内声明的变量具有函数作用域(function scope),属于局部变量 局部变量...

    Javascript变量的作用域和作用域链详解

     说起变量第一个要说到的肯定就是作用域,正是因为不熟悉JS的作用域,往往就会把面向对象的作用域张冠李戴,毕竟有些东西总是习惯性的这样,但是并不是每次照搬都是可以的,那么下一个问题就来了,js到底是什么作用...

    javascript执行环境及作用域详解

    JavaScript执行环境及作用域详解: JavaScript的执行环境和作用域是理解这门语言核心概念的关键部分,它影响着变量和函数的作用范围以及生命周期。执行环境定义了变量或者函数有权访问的其他数据,而作用域则决定了...

    详解JavaScript的AngularJS框架中的作用域与数据绑定

    作用域的继承机制允许子作用域继承其父作用域的属性和方法,类似于JavaScript中的原型继承。这种继承机制有助于在控制器之间共享数据和行为。在AngularJS中,作用域的层次结构与HTML元素的层次结构大致相同,这样...

    Javascript变量作用域详解

    ### Javascript变量作用域详解 Javascript变量作用域是编程中一个非常基础且重要的概念,理解它对于编写有效且可维护的代码至关重要。在Javascript中,变量的作用域主要分为两种:全局作用域和局部作用域。全局变量...

    详解JavaScript作用域和作用域链

    JavaScript 中有一个被称为作用域(Scope)的特性。虽然对于许多新手开发者来说,作用域的概念并不是很容易理解,本文我会尽我所能用最简单的方式来解释作用域和作用域链,希望大家有所收获! 作用域(Scope) 1. 什么是...

    JS变量问题详解

    JavaScript中没有块级作用域的概念,直到ES6之前,很多开发者使用立即执行函数表达式(IIFE)来模拟块级作用域,限制变量的作用范围。 闭包是JavaScript中的一个高级概念,它允许函数访问定义时的外部作用域。闭包...

    javascript 作用于作用域链的详解

    一、JavaScript作用域 任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和局部作用域两种...

    详解JavaScript的AngularJS框架中的作用域与数据绑定_.docx

    在JavaScript的AngularJS框架中,作用域(Scope)和数据绑定是两个核心概念,它们极大地简化了前端开发的复杂性,特别是对于构建大型单页面应用(SPA)来说。AngularJS由Google发起,作为一款轻量级的MVC框架,它...

    详解JavaScript 作用域

    JavaScript 函数作用域: 作用域在函数内修改。 JavaScript 局部作用域 变量在函数内声明,变量为局部作用域。 局部变量:只能在函数内部访问。 // 此处不能调用 carName 变量 function myFunction() { var carName...

    JS作用域链详解

    JavaScript中的作用域链是理解JS变量访问规则的关键概念,它涉及到变量查找、作用域生命周期以及闭包等核心知识点。下面将详细阐述这些内容。 首先,JS中的全局变量和函数实际上是作为`window`对象的属性和方法创建...

    JavaScript静态作用域和动态作用域实例详解

    本文将深入探讨JavaScript的静态作用域和动态作用域,并通过实例代码帮助理解这两种作用域的区别。 首先,我们来理解静态作用域。静态作用域,也称为词法作用域,是指在代码编写阶段就确定了函数或块级作用域的范围...

Global site tag (gtag.js) - Google Analytics