js笔记,顺便BS下写博客文章保存发表不了.

lgh2626 2012-03-31 02:44:41
一直没有系统的学习下javascript,经常会在开发或阅读文章时对js里的一些比较底层的概念难倒.还是应该做个笔记总结下好.

 1.Namespace 命名空间,使用目的是为了防止项目的function或变量命名冲突.

//先定义 YAHOO

// JavaScript

Documentif (typeof YAHOO == "undefined" || !YAHOO) { var YAHOO = {};}

YAHOO.namespace = function() { var a=arguments, o=null, i, j, d;

for (i=0; i<a.length; i=i+1) { d=a[i].split("."); o=YAHOO;

for (j=(d[0] == "YAHOO") ? 1 : 0; j<d.length; j=j+1)

{ o[d[j]]=o[d[j]] || {}; o=o[d[j]]; } } return o;};

//使用YAHOO.GetClassName=function(num)

{ switch (num)

{ case 1: return "typeTd1";break;

case 2: return "typeTd2";break;

case 3: return "typeTd3";break;

}}

2.arguments

arguments:表示传入函数的参数
callee:表示函数和函数主体的语句
caller:表示调用该函数的函数
例: 
functionb(x,y)
{
alert(arguments[0]);// m
alert(arguments.callee);// b
alert(arguments.caller);//a
}
function a()
{
b(m,n);
}

3. 指定函数的调用对象 call ,apply
function fun(a,b){

alert(this);

return a+b;


}


var obj={};

fun.call(obj,1,2); //通过obj对象来调用fun函数,并传入2个参数,弹出的指针为obj对象。



var obj={};


function fun_1(x,y){

function fun_2(a,b){

return a+b;


}

fun_2.apply(obj,arguments); //用fun_1的arguments对象来传参,实际上是接收了x,y


}



apply方法与call方法唯一不同的地方是函数传参方式不同。apply用数组式.

4.

(function(){ //do something})();

声明并立即运行匿名函数被称为”自执行函数“,自执行函数经常用于封装一段js代码。由于函数作用域的特点,自执行函数内的变量无法被外部访问,放在函数内的代码不会对外面的代码产生影响,可以避免造成变量污染
...全文
128 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
SomethingJack 2012-03-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
一直没有系统的学习下javascript,经常会在开发或阅读文章时对js里的一些比较底层的概念难倒.还是应该做个笔记总结下好.

1.Namespace 命名空间,使用目的是为了防止项目的function或变量命名冲突.

//先定义 YAHOO

// JavaScript

Documentif (typeof YAHOO == "undefined" || !YAHOO) ……
[/Quote]
敢不敢将JS格式化下
Acesidonu 2012-03-31
  • 打赏
  • 举报
回复
谢谢分享。
三石-gary 2012-03-31
  • 打赏
  • 举报
回复
thanks for your sharing...

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧