js全局访问局部变量

1、

  在函数内使用this.name(变量名)的方式赋值,当函数作为普通函数调用时,在函数外部可以直接访问到,这是因为这里的this指向window:

    function fn(){
        var r = 2 ;
        this.ss = 0;
        this.sum=function(num1,num2){
          return (num1+num2)*r;
        };
    }
    fn();
    //var b = new fn();
    console.log(ss);                //0
    console.log(window.sum(1,2));    //6
    console.log(sum(1,2));            //6

  当函数作为方法函数调用时,情况又有所不同,这时候this指向发生变化,指向自身:

    function fn(){
        var r = 2 ;
        this.ss = 0;
        this.sum=function(num1,num2){
          return (num1+num2)*r;
        };
    }

    var b = new fn();
/*
    console.log(ss);                //error 报错
    console.log(window.sum(1,2));    //error 报错
    console.log(sum(1,2));            //error 报错
*/
    //可以通过实例访问
    console.log(b.ss);                //0
    console.log(b.sum(1,2));    //6

2、

    var a ;
    function fn2(){
        var b = 0;
        return b ;
    };
    a = fn2();
    console.log(a); //0
时间: 2024-10-05 13:02:25

js全局访问局部变量的相关文章

JS的全局变量&局部变量

1 <script> 2 var i=10; //全局变量 3 j = 20; //全局变量 4 5 function(){ 6 var i=30; //局部变量 7 h = 40; //全局变量 8 } 9 </script> 由此可以总结一句话,在函数内部定义的就是局部变量,否则就是全局变量. 1 <script> 2 var i =10; 3 function display(){ 4 //var i = 20;//局部变量只在局部作用域起作用 5 i= 30;

7:Node.js 全局对象

原文出自:http://www.w3cschool.cc/nodejs/nodejs-global-object.html Node.js 全局对象 JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可 以在程序的任何地方访问,即全局变量. 在浏览器JavaScript 中,通常window 是全局对象, 而Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性. 我们在Node

java之static变量与全局、局部变量的区别

static变量与全局.局部变量的区别 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式.这两者在存储方式上并无不同.这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的.而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它.由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函

final运用于内部类访问局部变量

public void mRun( final String name){ new Runnable() { @Override public void run() { try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(name); } }.run(); } 当内部类访问局

JS根据访问终端类型动态显示网页内容

//JS根据访问终端对应显示[iPhone|iPad|iPod|iOS].[Android].[PC]三种不同的内容 //主要原理为:JS根据id值修改对应HTML标签属性 <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <meta name="OS" content="widt

shell 全局和局部变量

/******************************************************************** * shell 全局和局部变量 * 声明: * 到目前为止,在写shell脚本的时候,经常被shell的函数中的变量 * 作用域搞得糊涂,于是今天特意查了点资料,看到底怎么回事. * * 2016-2-24 深圳 南山平山村 曾剑锋 ***************************************************************

js中访问SqlServer数据库

1 <script language="JavaScript"> 2 // 创建数据库对象 3 var objdbConn = new ActiveXObject("ADODB.Connection"); 4 // DSN字符串 5 var strdsn = "Driver={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=sa;DATABASE=coa"; 6 // 打开数据源 7 objdbConn

table实现 js数据访问 传递json数据用render_to_response

$(document).ready(function(){ $.ajax({ url:'/query/', dataType:'json', type:'GET', success:function(data){ for(var i=0;i<data.length;i++){ var a='<tr>'+'<td>'+data[i].codename+'</td>'+'<td>'+data[i].name+'</td>'+'<td>

js全局函数

http://www.w3cschool.cc/jsref/jsref-obj-global.html 以前没搞懂JS的全局函数,全局函数和window对象的函数不一样.全局函数不属于任何一个内置对象. JS包含以下7个全局函数,用于一些常用的功能:escape(),eval(),isNan(),isFinite(),parseFloat(),parseInt(),unescape(); escape(string),对string进行编码,这样就可以在所有计算机上读取该字符串. 该方法不会对