`

Javascript常用收集

 
阅读更多

1. javascript的with

 

当你有一个对象的多个属性或者方法需要操作时,就可以使用with简化代码操作
Js代码  收藏代码
  1. <script type= "text/javascript" >  
  2. var  o=document.createElement( "div" );  
  3. with (o){  
  4.     style.cursor="pointer" ;  
  5.     style.zIndex="100" ;  
  6.     innerHTML="aaaa" ;  
  7. }  
  8. document.body.appendChild(o);  
  9. </script>  
 
2.  JavaScript中的arguments, callee, caller 






原文来自http://www.cnblogs.com/jyzjh/articles/1374851.html

 

javascript中函数的隐含参数: arguments  

Arguments该对象代表正在执行的函数和调用它的函数的参数。[function.]arguments[n]参数

function:选项。当前正在执行的 Function 对象的名字。 
n :选项。要传递给 Function 对象的从0开始的参数值索引。说明Arguments是进行函数调用时,除了指定的参数外,还另外创建的一个隐藏对象。

 

caller
返回一个对函数的引用,该函数调用了当前函数。
    functionName.caller 
    functionName 对象是所执行函数的名称。
说明
对于函数来说,caller属性只有在函数执行时才有定义。如果函数是由顶层调用的,那么 caller包含的就是 null 。如果在字符串上下文中使用 caller属性,那么结果和 functionName.toString 一样,也就是说,显示的是函数的反编译文本。

 

callee    返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。[function.]arguments.callee可选项 function参数是当前正在执行的 Function对象的名称。说明callee属性的初始值就是正被执行的 Function 对象。callee属性是 arguments 对象的一个成员,它表示对函数对象本身的引用,这有利于匿名
函数的递归或者保证函数的封装性,例如下边示例的递归计算1到n的自然数之和。而该属性
仅当相关函数正在执行时才可用。还有需要注意的是callee拥有length属性,这个属性有时候
用于验证还是比较好的。arguments.length是实参长度,arguments.callee.length是
形参长度,由此可以判断调用时形参长度是否和实参长度一致。

 

3. 获取元素坐标(随便记录一下大概实现方法)

jquery版本:

Js代码  收藏代码
  1. getOffset=  function (e) {  
  2.     var  to =  new  Object();  
  3.     var  obj = $(e);  
  4.     var  offset = obj.offset();  
  5.     to.left = offset.left;  
  6.     to.top = offset.top;  
  7.     to.right = offset.left + obj.width();  
  8.     to.bottom = offset.top + obj.height();  
  9.     return  to;  
  10. }  
 

 

js版本:

Js代码  收藏代码
  1. getOffset= function (o){  
  2.     var  to= new  Object();  
  3.     to.left=to.right=to.top=to.bottom=0;  
  4.     var  twidth=o.offsetWidth;  
  5.     var  theight=o.offsetHeight;  
  6.     while (o!=document.body){  
  7.         if (o.offsetParent== null ){  
  8.             break ;  
  9.         }  
  10.         to.left+=o.offsetLeft;  
  11.         to.top+=o.offsetTop;  
  12.         o=o.offsetParent;  
  13.     }  
  14.     to.right=to.left+twidth;  
  15.     to.bottom=to.top+theight;  
  16.     return  to;  
  17. }  
 

 

 

4. call 方法

调用一个对象的一个方法,以另一个对象替换当前对象(其实就是更改对象的内部指针,即改变对象的this指向的内容)。

 

Js代码  收藏代码
  1. call([thisObj[,arg1[, arg2[,   [,.argN]]]]])  

 参数
thisObj
可选项。将被用作当前对象的对象。
arg1, arg2,   , argN
可选项。将被传递方法参数序列。
说明
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。

Js代码  收藏代码
  1. <input type= "text"  id= "myText"     value= "input text" >  
  2. <script>  
  3.     function  Obj(){ this .value= "对象!" ;}  
  4.     var  value= "global 变量" ;  
  5.     function  Fun1(){alert( this .value);}  
  6.   
  7.      window.Fun1();   //global 变量   
  8.      Fun1.call(window);  //global 变量   
  9.      Fun1.call(document.getElementById('myText' ));   //input text   
  10.      Fun1.call(new  Obj());    //对象!   
  11. </script>  

 

Js代码  收藏代码
  1. var  first_object = {   
  2.    num: 42   
  3. };   
  4. var  second_object = {   
  5.    num: 24   
  6. };   
  7. function  multiply(mult) {   
  8.    return   this .num * mult;   
  9. }   
  10. multiply.call(first_object, 5); // returns 42 * 5    
  11. multiply.call(second_object, 5); // returns 24 * 5    
 

 

5. bind方法

Js代码  收藏代码
  1. <script type= "text/javascript" >   
  2. var  first_object = {   
  3.    num: 42   
  4. };   
  5. var  second_object = {   
  6.    num: 24   
  7. };   
  8.   
  9. function  multiply(mult) {   
  10.    return   this .num * mult;   
  11. }   
  12.   
  13. Function.prototype.bind = function (obj) {   
  14.    var  method =  this ,   
  15.     temp = function () {   
  16.      return  method.apply(obj, arguments);   
  17.     };   
  18.   
  19.    return  temp;   
  20. }   
  21.   
  22. var  first_multiply = multiply.bind(first_object);   
  23. first_multiply(5); // returns 42 * 5    
  24.   
  25. var  second_multiply = multiply.bind(second_object);   
  26. second_multiply(5); // returns 24 * 5    
  27. </script>   

 

5. JSON.stringify以及JSON.parse

    json格式对象和字符串转换函数

Js代码  收藏代码
  1. var  str =  ' { " name " : " xskow " , " age " : 23 } ' ;  
  2. JSON.parse(str);  

 

6. Javascript对象判断

   比较准确的判断如下:

 

Js代码  收藏代码
  1. if (obj.constructor == Array) {  
  2.   
  3.          alert('这是一个数组' );  
  4.   
  5.     }  
  6.   
  7.     //主要类型如下:Object / Array / Function / String / Number / Boolean  

 

转自:http://comeonbabye.iteye.com/blog/1167731

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics