YUI 之yui.js
一、构造函数直接返回一个对象,避免调用时出错。
Function Fvar F = function () {
var f = this;
instanceOf = function (o, type){
return (o && o.hasOwnProperty && (o instanceof type));
};
if(!(instanceOf(f, F))){
f = new F();
}
f.say = function(){
console.log('instance');
};
f.instanceOf = instanceOf;
return f;
};
二、充分利用YUI是一个全局的变量,也是一个全局的对象,可以在YUI上存放很多属性及方法。YUI的很多全局属性及方法都是利用YUI.Env这一个对象来进行中转的
Function F(function(){
proto = {
speak: function(){
console.log('this is speak from prototype');
},
age: 26,
_init: function() {
var f = this,G_Env = F.Env, Env = f.Env;
if(!Env){
f.Env = {
sex: 'man',
work: 'web worker',
love: 'lhy'
}
}
f.version = '0.0.1';
Env = f.Env;
f.Env.fsy = function(){
console.log('some message');
}
}
};
F.prototype = proto;
for(prop in proto){
if(proto.hasOwnProperty(prop)){
F[prop] = proto[prop]
}
}
F._init();
}());
三、充分利用this指向进行操作,比如YUI的对象配置分为YUI.GlobalConfig(全局配置),YUI_config(页面配置),YUI()(调用时传入参数的实例配置)三部分,就在原型中定义了一个applyConfig方法,从而通过不同的调用来进行配置。
四、一个yui.js在页面上第一次被引用后的执行顺序是
检测全局对象YUI是否存在 ----> 定义YUI构造函数 ---> 自执行函数;
在自执行函数时,会进行以下几步
定义私有变量及方法 ----> 给html加类名 ---> 定义一个包含一系列方法及属性的对象proto ---> 将YUI对原型指向对象proto ----> 将proto中的方法及属性显示的赋给YUI,从而可以配置YUI -----> 给YUI重定义一个配置参数的方法(先配置全局的、再配置传入的、再将全局参数重置) ---> 调用YUI._init()来初始化运行环境 –—> 监听window.load ---> 将事件监听及注销函数赋给YUI.Env ---> 在YUI.Env上为版本VERSION开辟一个空间,便于进行版本hash对象,
运行完毕以后,一个YUI会有以下属性及方法
applyConfig,_config,_init,_setup,applyTo,add,_attach,_delayCallback,use,_notify,_use,namespace,log,message,dump,error,guid,stamp,destroy,version,Env,_yuid,id,constructor,config
初始化环境函数执行步骤
定义YUI的版本号 -----> 配置环境 -------> 配置YUI的ID ------> 创建css标记元素 -------> 增加默认配置的语言 --------> 增加默认配置路径
配置完毕的环境为
core,loaderExtras,mods,versions,base,cdn,_idx,_used,_attached,_missed,_yidx,_uidx,_guidp,_loaded,_BASE_RE,parseBasePath,getBase,cssStampEl,add,remove,3.12.0,
YUI 之yui.js的更多相关文章
- 使用雅虎YUI Compressor压缩JS过程心得记录
对待发布的项目进行测试时,发现js下载量比较大,从jquery的min版想到了压缩项目中的js文件.很简单的google之(在此,强调一下google的重要性),搜到一个叫做YUI Compresso ...
- Jquery,YUI这个著名js库名称作用的理解
看廖雪峰大神的教程,其中讲到变量作用域问题.在命名空间中,写到:因为全局变量绑到了window上,不同的js文件访问相同全局变量或者定义了相同名字的顶层函数,都会造成命名冲突,并且很难被发现. 减少冲 ...
- YUI+Ant 实现JS CSS压缩
今天研究了一下YUI yahoo开源框架,感觉很猛啊. 于是乎我做了一个YUI的ant实现,网上好多关于bat的实现,我就另辟蹊径,出个关于这个的ant实现,嘿嘿独一无二的文章,如果转载的话,其注明作 ...
- 使用YUI+Ant 实现JS CSS压缩
今天研究了一下YUI yahoo开源框架,感觉很猛啊. 于是乎我做了一个YUI的ant实现,网上好多关于bat的实现,我就另辟蹊径,出个关于这个的ant实现,嘿嘿独一无二的文章,如果转载的话,其注明作 ...
- JAVA使用YUI压缩CSS/JS
前言 JS/CSS文件压缩我们经常会用到,可以在网上找在线压缩或者本地直接使用,我这里使用的是yahoo开源组件YUI Compressor.首先介绍一下YUI Compressor,它是一个用来压缩 ...
- 【JS代码压缩】使用YUI Compressor对js文件进行压缩处理
概述 在使用html5开发Hybird APP的时候,可能会引入大量的js包,另外对于一些核心的js文件,进行一些特殊的处理, 如压缩和加密就显得很重要了,YUI Compressor就是这样一个用于 ...
- YUI Compressor JS和CSS压缩工具使用方式(使用前安装JDK)
压缩测试: 选中 test.js, 执行右键菜单“Process with &YUICompressor”,会生成 test-min.js. 注意事项: 1. 需要安装 JDK >= 1 ...
- YUI的模块化开发
随着互联网应用越来越重,js代码越来越庞大,如何有效的去组织自己的代码,变得非常重要.我们应该学会去控制自己的代码,而不是到最后一堆bug完全不知道从哪冒出来.前端的模块化开发可以帮助我们有效的去管理 ...
- YUI 的模块信息配置优先级关系梳理
背景 YUI的配置参数较多, 可以在好几个地方配置一个module的相关信息, 如: //在全局配置, 所以YUI实例共享 YUI_config = { modules: { 'w-autcomple ...
随机推荐
- 移动端app测试
对于手机项目(应用软件),主要是进行系统测试. 而针对手机应用软件的系统测试,我们通常从如下几个角度开展测试工作: 功能模块测试: 交叉事件测试: 性能测试: 安全测试: 容量测试: 兼容性测试: 接 ...
- 怎么把QQ我的收藏表情图片转移到另一台电脑上
把收藏的QQ表情从一台电脑转移到另一台电脑的操作步骤如下: 1.在有表情的电脑登陆QQ,随便打开一个聊天窗口,点击[表情],选择[表情设置],点击[导入导出表情包],选择[导出全部表情包]: ...
- 转:fopen与open可以转换吗
绝对不可以.fopen是C运行库级别的函数,而open是system call的wrapper routine.fopen返回FILE *的指针,这个结构本身维护着一些关于这个文件的信息,而open返 ...
- 关于tcc、tlink的编译链接机制的研究
1.学习过程 在c:\下建立文件夹c,并将编译器tcc.exe.连接器tlink.exe.相关文件c0s.obj.cs.lib.emu.lib.maths.lib放入文件夹中. 要搭建一个简单的C语言 ...
- Qt之QTableView显示富文本(使用了QAbstractTextDocumentLayout和QTextDocument)
http://blog.csdn.net/liang19890820/article/details/50973099
- 树形dp入门练习(hdu1011+hdu1061)
hdu1011 和 hdu1561类似,给定每个节点的花费以及价值,并且子节点必须在父亲节点取到以后才可以被取到 相当于是在树上进行的01背包 dp时考虑每一个子树 root和它的每一个儿子,状态转移 ...
- openstack手动部署简单记录
1,关于网络规划部分,之前写的都好好的了,浏览器TM的崩溃了,我写几天的笔记 记录全给我丢了,我TM的多心疼啊! 大致说了关于openstack手动安装关于网络规划的问题 第一种legacy netw ...
- 使用MapReduce将HDFS数据导入到HBase(一)
package com.bank.service; import java.io.IOException; import org.apache.hadoop.conf.Configuration;im ...
- WingIDE注册破解方法
WingIDE是Python程序语言设计的集成开发环境,具有语法标签高亮显示,命令自动完成和函数跳转列表等非常强大的功能.本文主要介绍WingIDE 5安装及注册破解方法. 1. WingIDE 5下 ...
- 二、UITableView和它的亲戚们
. UITableView 参考: https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITableView ...