`
duanyong
  • 浏览: 92391 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

javascript 无侵入式编程

    博客分类:
  • web
阅读更多

    公司要求写一小型客服系统。根据以往的经验,想好架构和业务逻辑,操刀开做。

    由于是客服系统,免不了要把用户端的应用嵌入到其它平台或者其它网站。针对这一点,我们JS方面就不能像传统直接通过“function 函数名() {}” 来定义函数。

    下面是代码的部分:

var CSTING;
(function() {
	if ($defined(CSTING)) {
		return ;
	}

	var foo = function() {
		alert(1);
	}

	return {
		'foo': foo
	}
)()

 

    看上面的函数结构,完全不同于一般JS的写法(此写法是从朋友那里学来的)。我稍做解释:

    1、语句“var CSTING”,并没有给它赋值。这句代码很重要,而且一定不要有赋值的情况出现(类似var CSTIN = {})。如果在js文件开头就赋值,那么在其它平台或者网站已经定义了CSTING变量就会被新赋值所代替,影响到平台或者网站原有的业务,造成不必要的麻烦。

 

    2、语句“if ($defined(CSTING))”,此语法引用了mootools 的$defined。用来判断变量是否已经定义过(结合上语句"var CSTING;")。如果已定义,直接返回。

        2.1 $defined的语句原型可以理解为 typeof(CSTING) == 'undefined' ? false : true。

 

    3、语句"return { 'foo': foo }",可以理解为匿名函数执行后,返回一个object。object的属性foo是一个函数。

 

    4、(function() {})(),是执行js匿名函数的写法。指马上执行当前function() {}内的函数体。

 

注:

    文中名词“无侵入式编程”可能和HTML、CSS、Javascript中所说的“无侵入式编程”的概念相模糊。如果大家有更好的名词,请指定。

 

分享到:
评论
1 楼 css3 2011-04-20  
呵呵,不错,

相关推荐

    ASP.NET MVC 3高级编程

    8.1.2 非侵入式javascript 179 8.1.3 jquery的用法 180 8.2 ajax辅助方法 183 8.2.1 ajax的actionlink方法 183 8.2.2 html 5特性 185 8.2.3 ajax表单 186 8.3 客户端验证 188 8.3.1 jquery验证 189 8.3.2 ...

    figwheel-main:Figwheel Main提供用于开发ClojureScript应用程序的工具

    图轮主 Figwheel Main会构建您的ClojureScript代码并在编码时热加载它!...平视显示器Figwheel具有非侵入式抬头显示,可为您提供有关项目编译情况的反馈。 通过编写shell脚本,您可以单击抬头显示中的

    guide-how-to-learn-ruby-on-rails:Thinkful 创建的 Ruby on Rails 介绍指南

    在本交互式教程中,您将通过修改 Craigslist 克隆来学习 Ruby 和 Ruby on Rails 基础知识。 您可以在查看源代码,在那里您可以找到一个。 本指南由编写。 欢迎 人们出于各种原因开始学习 Rails。 无论您已经编程...

    java开源包1

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包11

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包2

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包3

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包6

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包5

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包10

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包4

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包8

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包7

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包9

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包101

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    Java资源包01

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    JAVA上百实例源码以及开源项目

     用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例  Message-Driven Bean EJB实例源代码,演示...

    JAVA上百实例源码以及开源项目源代码

    Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用...

Global site tag (gtag.js) - Google Analytics