`
playfish
  • 浏览: 289523 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

liferay的JS代码基础解析

阅读更多
这段代码是Liferay 5.1版本的代码,主要功能是实现浏览器版本的判断,以根据浏览器的不同调用不同css,实现多浏览器兼容。本文秉着学习JS的态度逐步的对Liferay的一些有用的js代码进行解析,JE上面这方面的高人很多,说得不对的地方非常期望可以得到各位高人的指正。另外也希望对一些和我一样的新人有所帮助。
Liferay.Browser = {
	init: function() {
		var instance = this;
		var version = instance.version();
		var exactVersion = instance.version(true);
		instance._browserVars = {
			agent: '',
			is_firefox: false,
                       ...节约篇幅略去部分代码
			is_mozilla: false,
		};
		instance._browserVars.agent = instance.browser().toLowerCase();
                ...
		jQuery.extend(instance, instance._browserVars);
	},
	browser: function() {
		var instance = this;

		return jQuery.browser.browser;
	},
	compat: function() {
		var instance = this;
		for (var i in instance._browserVars) {
			if (!window[i]) {
				window[i] = instance._browserVars[i];
			}
		}
	},
	version: function(exact) {
		var instance = this;
		if (!exact) {
			return jQuery.browser.version.major;
		}
		else {
			return jQuery.browser.version.string;
		}
	},
	_browserVars: {}
};
jQuery(
	function() {
		Liferay.Browser.init();
	}
);


这一段代码主要是对jQuery的一个j2browse的插件进行了包装,使用自己的变量命名需要来命名。对于初学者来说这样的写法可能比较难以理解。首先是
Liferay.Browser={...};

可能会有疑惑,定义一个变量不是var开头吗?从JE上面一些锁定的老帖http://www.iteye.com/topic/19506,大家都知道javascript是可以隐式声名变量的。但要注意,隐式声名变量总是被创建为全局变量。这种写法的意思就是将Liferay.Browser这个对象声明为全局变量。
再看
Liferay.Browser={...};

{}是js里面对象直接量的写法,在js中,对象属性也可以是函数,而不仅仅是数字字符串。这样的写法我所知道的带来的好处是:js中对象属性可以通过.来调用,而通过.来调用从外观上是很符合其它语言的习惯的,比较易读。在{}内定义了函数后,就可以通过Liferay.Browser.init()这样的方式来完成调用了。也就是接下来的
jQuery(
	function() {
		Liferay.Browser.init();
	}
);

这一段jQuery();实际上就是执行了一个函数,这个jQuery()的函数的参数也是一个function,可以理解为jQuery(var);同alert("error");对比就非常容易理解了。很多新人对于jquery的写法很困惑,跟平常用的一些简单的验证脚本的js写法都不一样,其实最容易混淆和难以接受的概念就是函数function也可以作为一个变量一个参数来传递。

而其实上面的整个代码,你可以这样来理解:
a = {1,2,3};
alert(a.1);


还有一点,通常看到的function的形式都是 function a(){}的形式,这里的function()函数名都没有。这是js的匿名函数,js允许这样的匿名函数。通常这种匿名函数都用在被作为参数传递的场合,在jQuery的应用中非常常见。

一点小小经验心得,权当学习记录,贻笑大方了,肯盼赐教。
2
0
分享到:
评论

相关推荐

    liferay相关的代码

    本文将围绕“Liferay相关的代码”这一主题,深入探讨Liferay的源码、工具以及如何利用这些资源进行开发。 首先,源码是理解任何软件系统核心的钥匙。对于Liferay,查看其源码可以帮助开发者了解其内部工作原理,...

    liferay代码生成器

    Liferay代码生成器是一款专为Liferay门户平台设计的开发工具,它旨在简化开发者在创建、维护和扩展Liferay应用时的工作流程。Liferay是一个开源的企业级内容管理和数字体验平台,广泛用于构建企业网站、社交网络和...

    Liferay portlet 工程示例代码

    Liferay Portlet工程示例代码提供了开发者们一个深入理解并实践Liferay Portal平台上的portlet开发的宝贵资源。Liferay Portal是一款开源的企业级门户系统,它允许用户创建、管理和集成各种Web应用程序,而portlet...

    liferay学习系列文章

    首先,我们要理解Liferay的基础概念。Liferay是一个基于Java的Web应用程序,它使用portlet技术来构建可重用的Web组件。portlet可以在门户页面上展示各种内容,如新闻、日历、论坛等。Liferay提供了丰富的API和插件...

    liferay代码研读.rar

    【标题】"liferay代码研读.rar" 是一个与Liferay Portal平台相关的代码解析资源包。Liferay是一款开源的企业级门户平台,广泛用于构建企业网站、社区和内部工作平台。这个压缩包包含了对Liferay源代码的研究和理解,...

    前端开源库-eslint-config-liferay

    **前端开源库-eslint-config-liferay** 是一个专为Liferay框架设计的JavaScript代码风格检查工具,基于ESLint的可共享配置。ESLint是一款强大的静态代码分析工具,它可以帮助开发者发现并修复代码中的潜在问题,遵循...

    liferay 繁體中文語系檔

    liferay 繁體中文語系檔,原LIFERAY的中文語系翻譯很糟糕,有心人重新翻譯的語系檔。

    liferay in actin源代码

    《Liferay in Action》这本书是关于企业级开源门户平台Liferay的权威指南,源代码的提供使得读者可以更深入地理解和实践书中所讲解的技术。Liferay是一款强大的内容管理系统,广泛应用于构建企业网站、社交网络和...

    Liferay合集.zip

    这个名为"Liferay合集.zip"的压缩包包含了多本关于Liferay的重要书籍,如《Liferay in Action》、《Liferay Portal Systems Development》和《Liferay User Interface Development》,以及一些中文文档,这些资源...

    liferay 代码架构图

    liferay 架构图,包括所有的类图,以及各类图之的关系等等,包的关系,实现思路

    Liferay porta 清理不需要的Portlet 代码

    因此,定期清理不必要的Portlet代码对保持Liferay Portal的高效运行至关重要。 一、为什么要清理Liferay Portlet代码 1. 资源优化:废弃的Portlet代码占用了服务器的磁盘空间和内存,清理它们可以释放资源,提高...

    liferay代码研读

    综上所述,Liferay代码研读涵盖了从基础的项目构建、调试技巧,到核心业务逻辑解析,再到数据持久化、多语言支持以及前端界面的设计等多个方面,是一次全面深入的探索之旅。通过对这些知识点的学习,开发者不仅能...

    Liferay Portal Liferay IDE

    Liferay Portal Liferay IDE

    liferay实现增删改查的源代码

    liferay是一个强大的工具,开发者只用写一个持久层的配置文件,改工具就反向生成持久层和业务层的代码.简单说来,工具会自动生成hibernate层和spring层的相关代码,开发者只用关心控制层即可.

    liferay6.06

    本文将深入探讨Liferay Portal的基础知识,安装配置,源码分析,开发环境设置,以及基于Struts2的Portlet应用开发等关键知识点。 1. Liferay Portal初体验: Liferay Portal是一款功能强大的企业级门户平台,支持多...

    liferay cas

    liferay cas 代码

    Liferay 6 入门教程

    通过学习这些教程,开发者不仅可以掌握Liferay 6的基础知识,还能深入了解其插件开发、MVC架构、Struts2、Spring、Hibernate以及LDAP集成等高级技术,从而在Liferay平台上构建出强大且灵活的企业级应用。

    liferay详细讲解 liferay项目完全讲解

    其次,“深入学习:JFC SWING—JAVA 基础类组件集.pdf”可能会涉及Liferay的用户界面开发。JFC(Java Foundation Classes)和Swing是Java GUI编程的重要工具,Liferay允许开发者使用Swing组件创建自定义portlet,以...

    liferay 6.0 开发指南

    - **Hooks**:Hooks是一种扩展机制,通过修改JSP文件或portal.properties文件等方式,可以在不修改Liferay源代码的情况下进行定制。 - **Ext-plugins**:Ext-plugins是一种特殊的插件类型,用于扩展Liferay的功能...

Global site tag (gtag.js) - Google Analytics