当前位置: 首页 > article >正文

YUI3内核分析(一)——YUI3实例化过程

/**
* 如果有自定义的YUI对象,将定义的对象复制到_YUI属性中
*/
if (typeof YUI != 'undefined') {
YUI._YUI = YUI;
}
/**
* 定义YUI全局对象
* 
*/
var YUI = function() {
/**
* 定义实例对象属性 Y:在未实例化前this指向window,实例化后指向YUI对象
*/
var i = 0, 
Y = this, 
args = arguments, 
l = args.length, 
instanceOf = function(o, type) { // instanceof函数化
return (o && o.hasOwnProperty && (o instanceof type));
};
/**
* 自我实例化过程
* 当调用YUI()时,首次Y不是YUI实例,将new出一个对象
* 此时YUI()将再次从头到尾运行下来,此时Y已经是YUI对象了,本次将执行Y._init()方法
* 然后看闭包里面的实现
*/
if (!(instanceOf(Y, YUI))) {
Y = new YUI();
} else {
Y._init();
}
Y.instanceOf = instanceOf;
return Y;
};
(function() {
var proto, VERSION = '0.0.1';
proto = {
_init : function() {
var Y = this;
Y.constructor = YUI;		//字面量声明,原型对象构造函数指回YUI
},
use:function(){
//
},
sayHello:function(name){
console.log('Hello YUI I am '+name);
}
};
YUI.prototype=proto;		//YUI原型对象指向proto
})();


以上是YUI对象实例化的主要结构体,测试运行:

YUI().sayHello('steve');


 

http://www.lryc.cn/news/2419942.html

相关文章:

  • 「 硬核分享」 ❤️ QQ连连看自动消除外挂完整源码❤️「 复制即用」
  • python毕业设计:股票交易数据分析系统+可视化+Django框架 爬虫技术(源码)✅
  • 无需公网IP搭建的web服务器,简单易上手
  • 算法数据结构——背包问题详解(第四篇)
  • 五分钟学会搭建web网站
  • 手把手教你搭建自己的个人博客(图文教程)
  • 9大代理服务器软件的比较与分析
  • 海外电商平台开发流程
  • Milvus的向量索引(内存索引)
  • 【转】3gpp和3gpp2
  • 浏览器HTTP_USER_AGENT汇总——Firefox、Chrome、IE9、IE8、IE7、IE6
  • 软件质量管理体系_软件质量管理概述
  • 个人站长三次网站备案的经历及经验总结
  • 基于智能移动设备的IP电话软件的设计与实现
  • 83102 三种常见网络协议
  • 第二学期无人机操作师结业复习测试
  • OpenFeign不支持{}特殊字符的header解决
  • c语言中pause的作用,c++中的system(pause)的作用和含义解析
  • 微信小程序_介绍
  • 非诚勿扰又来一男程序员
  • 深度全方位盘点你眼中的IT行业现状与未来趋势
  • BZOJ 2462 BeiJing 2011 矩阵模板 二维hash
  • 2023计算机毕业设计SSM最新选题之java体育运动兴趣社区系统8bisy
  • CSS3:3D移动translate3d及3D转换透视效果perspective
  • 分布式系统架构网络之IDC机房
  • 靶向代谢组
  • 【UWB 定位】高精度定位
  • js获取数组长度-length属性的介绍
  • 专访 SphereEx 创始团队:获数百万美金投资,接棒 ShardingSphere 打造全新分布式生态
  • SpringBoot+Flowable 完美结合,优雅实现工作流!