`
houfeng0923
  • 浏览: 144867 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

YUI3学习(三)---OOP

阅读更多

前一篇 YUI3学习(二)--YUI Global Object

在前篇YUI3 Global Object中介绍了oop模块中的的两个继承相关的方法 extend 和augment。

本篇介绍下YUI3 oop模块剩余的几个方法。

 

Y.aggregate(r,s,ov.wl)

同样的基于Y.mix的属性合并方法;需要  区别Y.aggregate与Y.merge 

API说明如下:

 

object aggregate ( r , s , ov , wl )

Applies object properties from the supplier to the receiver. If the target has the property, and the property is an object, the target object will be augmented with the supplier's value. If the property is an array, the suppliers value will be appended to the target. 
如果属性是object,则根据是否覆盖参数ov,进行属性合并操作;
如果属性是array,并且ov参数为false,则根据数组索引合并属性
 如果ov参数为true,则会使用s的数组覆盖

 

   源码如下:

Y.aggregate = function(r, s, ov, wl) {
        return Y.mix(r, s, ov, wl, 0, true);
};

 

   示例代码:

 

   var s={
	     'a':'aaaa', 'b':[1,2,3]
   };
   var r = {
   	'a':'rrrr', 'b':[4]
   };
   
    Y.mix(r,s);  
   alert(Y.dump(r))//{a=>rrrr,b=>[4]}
//------------------------------------
   var s2 = {
   	'a':'aaaa', 'b':[1,2,3]
   };
   var r2 = {
   	'a':'rrrr', 'b':[4]
   };
      
   Y.aggregate(r2,s2); //等效: Y.mix(r2,s2,false,[],0,true); 
  alert(Y.dump(r2)) //{a=>rrrr,b=>[4,2,3]}
  Y.aggregate(r2,s2,true);等效:Y.mix(r2,s2,true,[],0,true);
   alert(Y.dump(r2));//{a=>aaaa,b=>[1,2,3]}
 

 

Y.clone(o,safe,func,context,owner,cloned)

详细api参考   返回对象深度克隆。

其中参数safe==true,不会克隆prototype属性; 否则克隆所有,这时,改变 prototype属性会对原始和克隆对象造成影响。

 

var o = {
	'a':[1,2], 'b':{'name':'b1'}
}
var clonedObj = Y.clone(o);
o.a.push(3);
o.b.name = 'b1-changed';
alert(clonedObj.a) //1,2
alert(clonedObj.b.name);//b1
 

 

Y.bind(func,context,args*)

返回绑定上下文和参数值的函数。 (参数可选)

示例代码: 

 

function Chinese(){
}
Chinese.prototype.say = function(name,msg){
	alert('你好:'+name+','+msg);
}
function sayHello(name,msg){
	//.....
	this.say(name,msg);
}

var bindedFun = Y.bind(sayHello,new Chinese(),'YUI3');
bindedFun('i like you'); //'你好:YUI3,i like you'
 

 

 

Y.rbind(func,context,args*)

与Y.bind相似,返回绑定上下文和参数值的函数;不同的是绑定参数的顺序。

示例代码:(注意与Y.bind的区别)

 

function Chinese(){
}
Chinese.prototype.say = function(name,msg){
	alert('你好:'+name+','+msg);
}
function sayHello(name,msg){
	//.....
	this.say(name,msg);
}

var rbindedFun = Y.rbind(sayHello,new Chinese(),'i like you');
rbindedFun('YUI3'); //'你好:YUI3,i like you'
 

 

 

 

 

 

 

 

 

 

 

  • 大小: 3.2 KB
2
0
分享到:
评论

相关推荐

    yuicompressor-maven-plugin

    ### 三、yuicompressor-maven-plugin的使用 要在Maven项目中使用`yuicompressor-maven-plugin`,首先需要在项目的`pom.xml`文件中添加插件配置。以下是一个基本配置示例: ```xml ... ... <groupId>...

    eclipse yuicompressor-maven-plugin

    ### 3. eclipse yuicompressor-maven-plugin `yuicompressor-maven-plugin`是Maven的一个插件,它将YUI Compressor集成到Maven的构建流程中。在Eclipse环境中,开发者可以方便地使用此插件在构建项目时自动对.js和....

    yuicompressor-maven-plugin, 用于压缩 (Minify/Ofuscate/Aggregate) Javascript文件和使用 YUI 压缩器的CSS文件的Maven 插件.zip

    yuicompressor-maven-plugin, 用于压缩 (Minify/Ofuscate/Aggregate) Javascript文件和使用 YUI 压缩器的CSS文件的Maven 插件 [[Flattr this git repo] ( http://api.flattr.com/button/flattr-badge-large.png)]...

    yui-yuidoc-yuidoc-50-529-gc631758

    【标题】"yui-yuidoc-yuidoc-50-529-gc631758" 指向的是一个关于 Yahoo User Interface Library (YUI) 和 YUIDoc 的特定版本或修订版。YUI 是一个开源的 JavaScript 库,提供了一系列模块化的工具,用于构建富有交互...

    yui3-master.zip

    YUI3是YUI库的第三个主要版本,着重于模块化、轻量化以及性能优化。本文将围绕“yui3-master.zip”这个压缩包,深入探讨YUI3的核心概念、结构和实际应用。 1. **模块化设计** YUI3采用了模块化的设计理念,每个...

    yuicompressor-yui compressor

    yuicompressor-2.4.2.jar yuicompressor-2.4.7.jar jsZip.exe yuicompressor yui compressor js压缩工具 javascript压缩工具 css压缩工具 ------------------------------------ //压缩JS java -jar yui...

    yuicompressor-2.4.8.jar

    对于Idea用户,可以通过安装第三方插件实现yuicompressor的集成,这样在编译项目时,可以直接对JavaScript和CSS文件进行自动压缩,简化了工作流程,提高了开发效率。 在Idea中配置yuicompressor,通常需要以下步骤...

    YUI-EXT使用详解

    3. **数据绑定(Data Binding)**:YUI-EXT支持数据绑定,允许UI组件与后台数据模型直接关联。当数据模型发生变化时,UI会自动更新,反之亦然。这极大地简化了数据驱动的界面开发。 4. **表单(Forms)**:YUI-EXT...

    yui-compressor 2.4.6 2011-04-15发布YUI

    yui compressor 2.4.6 发布日期:2011-04-15 用例: java -jar yuicompressor-2.4.6.jar myfile.js -o myfile-min.js

    grunt-yui-compressor-源码.rar

    3. **grunt-yui-compressor的配置** 在Gruntfile.js中,开发者需要配置grunt-yui-compressor插件,指定待压缩的文件、输出目录以及压缩选项。例如: ```javascript grunt.initConfig({ yui_css: { options: { ...

    yui3-3.17.2最新版

    YUI(Yahoo! User Interface Library)是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、可扩展的Web应用程序。...通过深入学习和掌握YUI,开发者可以更好地应对现代Web开发的挑战。

    前端开源库-yui-compressor

    npm install yui-compressor ``` 安装完成后,可以使用以下命令对JavaScript或CSS文件进行压缩: ```bash java -jar path/to/yuicompressor.jar --type js input.js -o output.min.js java -jar path/to/yui...

    webstorm_phpstorm_yuicompressor-2.4.8.jar

    标题中的"webstorm_phpstorm_yuicompressor-2.4.8.jar"正是YUI Compressor的一个版本,适用于WebStorm和PhpStorm。这个文件是Java可执行的JAR包,包含YUI Compressor的核心压缩算法,可以处理并压缩JavaScript和CSS...

    YUI 3 Live Messaging-开源

    YUI 3是该库的第三个主要版本,它提供了更模块化的设计和更强大的功能。 这个模块的核心功能是实现“Live Messaging”,即实时通信,允许用户在不同的客户端之间发送和接收即时消息。这种技术通常用于构建聊天应用...

    yuicompressor-2.4.jar

    压缩JS所使用jar包!...压缩JS:java -jar yuicompressor-2.4.jar --type js xxx.js -o xxx.js --charset utf-8 压缩CSS:java -jar yuicompressor-2.4.jar --type css xxx.css -o xxx.css --charset utf-8

    yui4jsf-0.6.1 jar包

    yui4jsf所有控件,可以和seam框架结合,已验证,源码在yui4jsf-0.6.1\net\sf\yui4jsf下

Global site tag (gtag.js) - Google Analytics