JavaScript中几个特殊的对象:window对象、this对象、global对象

来源:互联网 发布:驾照考试网络预约平台 编辑:程序博客网 时间:2024/06/11 03:31
  1. JavaScript中几个特殊的对象:  
  2.   
  3.     1)window对象:  
  4.         在全局作用域中声明的变量、函数都是window对象的属性和方法。  
  5.           
  6.     2)this对象:  
  7.         this对象是在运行时基于函数的执行环境绑定的:在全局函数中,this等于window;当函数被作为某个对象的方法调用时,this等于那个对象。  
  8.         特别注意:匿名函数的执行环境具有全局性,因此匿名函数中的this对象通常指向window对象!!!  
  9.   
  10.         例子1:  
  11.             var name = "the window";  
  12.             var obj = {  
  13.                 name : "my object",  
  14.                 getName : function(){  
  15.                     return function(){  
  16.                         return this.name;  
  17.                     }  
  18.                 }  
  19.             };  
  20.             var nameValue = obj.getName()();  
  21.             alert(nameValue);       // the window  
  22.           
  23.             解析:  
  24.                 var nameValue = obj.getName()();     即:  
  25.                 var nameValue = function(){  
  26.                                     return this.name;  
  27.                                 }();  
  28.                 注意:匿名函数function(){return this.name;}的执行环境具有全局性,故匿名函数中的this对象指向window对象  
  29.           
  30.         例子2:  
  31.             var name = "the window";  
  32.             var obj = {  
  33.                 name : "my object",  
  34.                 getName : function(){   
  35.                     // 把匿名函数的外部(函数)作用域中的this对象保存在一个闭包能够访问到的变量里。  
  36.                     var that = this;  
  37.                     return function(){  
  38.                         return that.name;  
  39.                     }  
  40.                 }  
  41.             };  
  42.             var nameValue = obj.getName()();  
  43.             alert(nameValue);       // my object  
  44.           
  45.             解析:  
  46.                 var nameValue = obj.getName()();     即:  
  47.                 var nameValue = function(){  
  48.                                     return that.name;  
  49.                                 }();  
  50.             说明:that不是关键字,只是一个普通的变量。闭包访问变量的顺序:闭包中的局部变量、外部函数的局部变量、全局变量!!!  
  51.   
  52.               
  53.     3)Global对象:  
  54.         1)所有在全局作用域内定义的属性和方法,都是Global对象的属性。  
  55.         2)Global对象不能直接使用,也不能用new运算符创建。  
  56.         3)Global对象在JavaScript引擎被初始化时创建,并初始化其方法和属性。  
  57.         4)浏览器把Global对象作为window对象的一部分实现了,因此,所有的全局属性和函数都是window对象的属性和方法。  
  58.   
  59.         Global对象的属性;  
  60.             Object      构造函数Object  
  61.             Function    构造函数Function  
  62.             Date        构造函数Date  
  63.             Array       构造函数Array  
  64.             RegExp      构造函数RegExp  
  65.             Error       构造函数Error  
  66.             String      构造函数String  
  67.             Boolean     构造函数Boolean  
  68.             Number      构造函数Number  
  69.               
  70.             undefined   特殊值undefined  
  71.             NaN         特殊值NaN  
  72.               
  73.         Global对象的方法:  
  74.   
  75.             encodeURI():  
  76.                 1)对整个URI进行编码。  
  77.                 2)只对空格进行编码,不会对冒号、正斜杠、问号、井号等进行编码。  
  78.                 3)编码后的结果:除了空格被替换成了%20之外,其它的都没有发生变化。  
  79.                 4)对应的解码方法:decodeURI()  
  80.               
  81.             encodeURIComponent():  
  82.                 1)对部分URI(指除去协议、主机地址、端口后的部分)进行编码。  
  83.                 2)对任何非标准字符进行编码。  
  84.                 3)对应的解码方法:decodeURIComponent()        
  85.               
  86.             URI编码方法说明:  
  87.                 1)有效的URI中不能包含某些字符(例如:空格等)。  
  88.                 2)用特殊的UTF-8编码替换所有无效的字符,从而让浏览器能够接受和理解。  
  89.                   
  90.             eval():当解析器发现代码中调用eval()方法时,它会将传入的参数当作实际的JavaScript语句来解析。  
原创粉丝点击