WEB开发网
开发学院网页设计JavaScript Javascript进阶 阅读

Javascript进阶

 2010-09-14 13:44:42 来源:WEB开发网   
核心提示:前言我的上一篇<Javascript简述>对JavaScript做了浅尝辄止的描述,并没有深入讲解其细节内容,Javascript进阶,本文则会从下面几方面的内容对JavaScript做一些整理与深入的讲解:1. object2. this & closure3. call & apply4. argume

前言

我的上一篇<Javascript简述>对JavaScript做了浅尝辄止的描述,并没有深入讲解其细节内容。本文则会从下面几方面的内容对JavaScript做一些整理与深入的讲解:

1. object

2. this & closure

3. call & apply

4. arguments

深入了解这些概念将使你在JavaScript的使用上更加的游刃有余。

一、object

JavaScript是弱类型的脚本语言,所以声明变量时不用指定类型。

在JavaScript中有三个基本类型boolean,number,string与特殊类型null(空/无效),undefined(无定义),引用类型则是object。

数组和函数都是实现为object类型的对象。一般情况下在JavaScript中可以这样定义对象,类似perl中的hash:

var functions = {
 show:function(){
  alert("Show"); },
 hide:function(){
  alert("Hide"); }
};

这里有两种方式调用其中的函数:

1, functions.show();
2, functions["show"]();

显然用第二种方式可以让我们在程序中动态生成函数调用方式,有更大的自由性,充分体现出JavaScript动态语言的特性。

例如:

functions[condition?"show":"hide"](); // 根据condition条件决定调用show/hide

在jQuery源代码中就有好几处地方使用了该方式:

Javascript进阶Javascript进阶
 // Save the old toggle function
 _toggle: jQuery.fn.toggle,

 toggle: function( fn, fn2 ){
  var bool = typeof fn === "boolean";

  return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
   this._toggle.apply( this, arguments ) :
   fn == null || bool ?
    this.each(function(){
     var state = bool ? fn : jQuery(this).is(":hidden");
     jQuery(this)[ state ? "show" : "hide" ]();
    }) :
    this.animate(genFx("toggle", 3), fn, fn2);
 },

 fadeTo: function(speed,to,callback){
  return this.animate({opacity: to}, speed, callback);
 },
Javascript进阶Javascript进阶

1 2 3 4 5 6  下一页

Tags:Javascript 进阶

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接