文档章节

requireJs 模块化简陋版本

HonChy
 HonChy
发布于 2015/01/11 09:26
字数 243
阅读 232
收藏 4
var __fns = {};
function define(name,fn){
	__fns[name] = fn;
}
function require(names,callback){
	var fns = [];
	$(names).each(function(i,name){
		fns.push(__fns[name]);
	});
	callback.apply(window,fns);
}


    需要留意的是,在使用的时候,require当中的参数是函数,也就是说可以进行new操作的,而不是已经new过后的实例。

    示例用法:

//预约时间
	function ServiceOrderTime(orderTime){
		this.userAddress = orderTime.userAddress;//小区街道
		this.userAddressNo = orderTime.userAddressNo;//楼宇门派号
		this.lngLatPoi = orderTime.lngLatPoi;
		this.scheduleTime = orderTime.scheduleTime;
		this.serviceIntention = orderTime.serviceIntention;
		this.orderDay = new OrderDay();
		this.orderDay.fromTimelong(this.scheduleTime);
		this.orderTime = new OrderTime();
		this.orderTime.fromTimelong(this.scheduleTime);
	}
	ServiceOrderTime.prototype.toJson = function(){
		return {
			userAddress : this.userAddress,
			userAddressNo : this.userAddressNo,
			lngLatPoi : this.lngLatPoi,
			scheduleTime : this.scheduleTime,
			serviceIntention : this.serviceIntention,
			travelToNewCost : this.travelToNewCost
		};
	}
	ServiceOrderTime.prototype.stringify = function(){
		return this.lngLatPoi + '-' + this.scheduleTime + '-' + this.serviceIntention;
	}
	ServiceOrderTime.prototype.eq = function(other){
		if ( other ) { 
			return this.lngLatPoi == other.lngLatPoi && this.scheduleTime == other.scheduleTime && this.serviceIntention == other.serviceIntention; 
		}
		return false;
	}
	ServiceOrderTime.prototype.travelCost = function(lnglatPoi,callback){
		var me = this;
		getTimeCost(this.lngLatPoi,lnglatPoi,function(mins){
			me.travelToNewCost = mins;
			callback(mins);
		});
	}
	ServiceOrderTime.prototype.getLngLatPoi = function(callback){
		var me = this;
		AMapUtils.getAddressPoi(me.userAddress, {
			successCB : function(location) {
				var theLnglatPoi = location.geocodes[0].location;
				me.lngLatPoi = theLnglatPoi.lng + ',' + theLnglatPoi.lat;
				callback();
			},
			errorCB : function(){
				me.lngLatPoi = null;//查询出错
				callback();
			}
		});
	}
	//到处到特定的作用域中
	define('ServiceOrderTime',ServiceOrderTime);

    

require(["ServiceOrderTime","ServiceOrderTimes","Stylist","ServiceOrder"],function(ServiceOrderTime,ServiceOrderTimes,Stylist,ServiceOrder){
	//prepare data
	var serviceOrder = new ServiceOrder();
	。。。
});


© 著作权归作者所有

HonChy
粉丝 12
博文 100
码字总数 87679
作品 0
海淀
程序员
私信 提问
RequireJS与SeaJS模块化加载示例

web应用越变的庞大,模块化越显得重要,尤其Nodejs的流行,Javascript不限用于浏览器,还用于后台或其他场景时,没有Class,没有Package的Javascript语言变得难以管理,于是出现CommonJS项目...

nosand
2014/05/04
4.2K
10
RequireJS极简入门教程

RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular s......

程序员诗人
2017/03/30
0
0
使用 RequireJS 优化 Web 应用前端

基于 AMD(Asynchronous Module Definition)的 JavaScript 设计已经在目前较为流行的前端框架中大行其道,jQuery、Dojo、MooTools、EmbedJS 等纷纷在其最新版本中加入了对 AMD 的支持。本文...

IBMdW
2012/09/11
8.6K
16
优化 RequireJS 项目(合并与压缩)

本文将演示如何合并与压缩一个基于RequireJS的项目。本文中将用到苦干个工具,这其中就包括Node.js。 因此,如果你手头上还没有Node.js可以点击此处下载一个。 动机 关于RequireJS已经有很多...

jinker
2013/05/01
33.3K
12
AMD 规范与CMD 规范概要

命名冲突和文件依赖,是前端开发过程中的两个经典问题。通过模块化开发来解决。 AMD 规范在这里:github.com/amdjs/amdjs… CMD 规范在这里:github.com/seajs/seajs… AMD 是 RequireJS 在推...

BothEyes1993
2018/12/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
26分钟前
4
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
4
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
13
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
13
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部