YUI 学习笔记: YAHOO 全局对象

来源:互联网 发布:百度开发的软件 编辑:程序博客网 时间:2024/06/05 17:08

转自:http://www.zhuoqun.net/html/y2008/1109.html

 


今天开始写YUI 的学习笔记。其实作为一个初学者,我知道学习 JavaScript还是要从基础学起,最好不要去学习**类库的使用方法,我也一直都在看相应的有关JavaScript基础的资料,大部分的学习还是在那个上面。不过,既然答应了Blog的事情也不能不做,虽然这个系列可能更新得很慢,还是要写下去 :)今天先开个头,介绍下YUI中最基础的一个东西,英文好的请直接看 YUI 官方站点,这里可以无视,没什么新的东西。

在YUI中,YAHOO 这个字符串是最常见的了,在所有的组件中都会看到。因为在YUI中YAHOO是一个全局对象,它为所有YUI类库中的代码提供了一个命名空间(namespace),所以在所有使用了YUI的页面中必须包含YAHOO对象。

在页面中包含YAHOO全局对象:
<script type=”text/javascript” src=”http://yui.yahooapis.com/2.6.0/build/yahoo/yahoo-min.js” ></script>

注意,如果页面中使用了YUI其他的一些组件,那么上面这行代码必须在所有引用YUI组件的script标签前面。

YAHOO全局对象除了为所有的YUI组件提供命名空间之外,还有包含了一些很常用的方法:

  • YAHOO.namespace
  • YAHOO.lang
  • YAHOO.lang.hasOwnProperty
  • YAHOO.lang.extend
  • YAHOO.lang.augment
  • YAHOO.log
  • YAHOO_config 和 YAHOO.env
  • YUI 模块名

1. YAHOO.namespace

这个方法可以用来自定义命名空间。YUI中YAHOO全局对象会自动创建三个命名空间:YAHOO.util, YAHOO.widget 以及YAHOO.example。如果你想要在YUI的基础上自己写一个组件,或者想把某个产品的所有JS代码放到一个命名空间下来避免和其他JS冲突的话,就可以使用这个方法。然后你就可以在自定义的命名空间中定义自己的属性或者方法了。

具体请看这里

2.YAHOO.lang

这个其实是个对象,它有很多有用的方法,比如 isArray(), isFunction() 等,来判断指定的参数是否是数组、函数等。还包含了下面要介绍的几个方法。

具体请看这里

3.YAHOO.lang.hasOwnProperty

这个方法可以用来过滤直接添加到Object的原型上的属性。其实所有的A级浏览器都已经有hasOwnProperty这种原生方法了,除了Safari。所以为了保险起见还是使用YAHOO.lang.hasOwnProperty比较好。而且如果浏览器有hasOwnProperty这种原生方法的话,YAHOO.lang.hasOwnProperty 会进行直接调用。

具体请看这里

4.YAHOO.lang.extend

因为JavaScript一开始并没有被设计成面向对象的语言,所以要实现继承就需要一些技巧,而YAHOO.lang.extend就是来帮助你在JavaScript中实现继承的,它消除了很多现有方法的弊端。YAHOO.extend 是 YAHOO.lang.extend的别名,你也可以使用这种缩写。

具体请看这里

5.YAHOO.lang.augment

YAHOO.lang.augment 是用来重用现有代码的,用法如下,它可以帮你把对象1原型上的某些或所有属性应用到对象2的原型上。

YAHOO.lang.augment(对象2,对象1)

YAHOO.augment 是 YAHOO.lang.augment 的别名,你也可以使用这种缩写。

具体请看这里

6.YAHOO.log

这个方法是用来调试的,你可以用它输出一些调试信息。不过,需要注意的是,这个方法是要和 YAHOO.widget.Logger 组件配合来使用的,因为只有YAHOO.widget.Logger 组件可以输出 YAHOO.log记录的信息。如果YAHOO.widget.Logger 组件可用的话,YAHOO.log 就会调用YAHOO.widget.Logger.log 方法,否则就什么也不做。

具体请看这里

7.YAHOO_config 和 YAHOO.env

YAHOO.env 包含了页面中所加载的所有YUI组件的信息,任何组件都可以使用 YAHOO.env.getVersion 来访问到这些信息,当动态加载YUI组件的时候这个方法就特别有用,因为可以查看版本检测依赖关系。

YAHOO_config是一个对象,你可以在它上面定义一个回调函数,这样每当页面中加载一个新的YUI组件的时候,这个回调函数就会自动执行,并且会传送给它一个包含了组件信息的对象。

具体请看这里

8.YUI 模块名

每个YUI组件都有一个对应的模块名,这些模块名在YUI中都是唯一的。这些模块名会在很多地方都用到(尤其是YUILoader,因为有时候需要使用YUILoader动态加载组件,这个时候就要传给它所需组件的模块名)。

每个组件对应的模块名请看这里