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 ...
随机推荐
- MPMoviePlayerController 电影播放器—备用
MPMoviePlayerController 与AVAudioPlayer有点类似,前者播放视频,后者播放音频,不过也有很大不同,MPMoviePlayerController 可以直接通过远程UR ...
- 转:MFC中创建多线程
MFC中创建多线程 MFC的多线程函数必须声明为静态的或者是全局函数(不同的在于全局函数不能访问类的私有静态成员,而静态类函数可以):但这样的线程函数只能访问静态的成员变量,要实现访问类的其他成员 ...
- 使用__autoload()来管理文件导入
其基本思想是把要使用到的其他资源文件统一使用__autoload()方法来管理,我们在使用的时候只需要引入包含__autoload()方法的文件即可.其对性能的影响是微乎其微的,但是带来的好处是巨大的 ...
- rsync同步目录及同步文件
最简单的只读同步工作. 一,服务端的配置 1,安装rsync(阿里云默认已有此程序) 略 2,生成文件rsyncd.conf,内容如下: #secrets file = /etc/rsyncd.sec ...
- 10 001st prime number
这真是一个耗CPU的运算,怪不得现在因式分解和素数查找现在都用于加密运算. By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13 ...
- mysql redo log
mysql> show variables like '%innodb_log_file_size%'; +----------------------+-----------+ | Varia ...
- 2016.08.13/2/index/_d_Lucene54_0.dvm: Too many open files
er[file_system_exception: /elk/elasticsearch/data/es_cluster/nodes/0/indices/logstash-zjzc-frontend- ...
- BZOJ3396: [Usaco2009 Jan]Total flow 水流
3396: [Usaco2009 Jan]Total flow 水流 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 45 Solved: 27[Sub ...
- City Tour
Description Alice想要从城市A出发到城市B,由于Alice最近比较穷(不像集训队陈兴老师是个rich second),所以只能选择做火车从A到B.不过Alice很讨厌坐火车,火车上人比 ...
- 为兴趣求职:如何学习UI框架,请将你的看法观点写在评论下面
前言:此篇文章是就我女朋友的求职和前端学习经历而写,希望得到UI前辈的热心指点,不胜感激涕零! 地理坐标: 中国,四川,成都 求职经历: 她之前找过两份工作,第一份是金融销售专员,第二份是汽车保险.她 ...