JQuery/Underscore等javascript框架中noConflict()的使用和实现原理

一般的javascript框架,都是通过向全局对象window中注入自己的属性实现的。比如JQuery向window中添加"$"对象,Underscore向window对象中添加"_"对象。如果在框架加载之前,已经存在这些全局变量呢,会怎么样呢?

<script>
	var $ = "$";
</script>
<script src="jquery-1.10.2.js"></script>
<script>
	alert($ === "$");//false
	alert($().jquery);//1.10.2
</script>

很显然$被jquery框架占用了,我们之前定义的$变量值被覆盖。如果既想使用JQuery框架,又想使用之前定义的$变量。那么noConflict()函数就派上用场了。

<script>
	var $ = "$";
</script>
<script src="jquery-1.10.2.js"></script>
<script>
	var stillJQuery = $.noConflict();
	alert(stillJQuery().jquery);//1.10.2
	alert($ === "$");//true
</script>

一般的javascript框架都是如下结构,实现原理如下:

(function(window) {
	// 保存之前数据
	var _$E = window.$E;

	var myplugin = {"name":"aty"};
	myplugin.noConflict = function(){
		window.$E = _$E;
		return myplugin;
	};

	// 向全局对象注册$E
	window.$E = myplugin;
})(window);
时间: 2024-10-22 01:06:17

JQuery/Underscore等javascript框架中noConflict()的使用和实现原理的相关文章

NSPredicate用法总结(Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取)

简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取. 定义(最常用到的方法): [objc] view plaincopy NSPredicate *ca = [NSPredicate predicateWithFormat:(NSString *), ...]; Format:(1)比较运算符>,<,==,>=,<=,!=可用于数值及字符串例:@"number > 100" (2)范围

jQuery 和其他 JavaScript 框架

正如您已经了解到的,jQuery 使用 $ 符号作为 jQuery 的简写. 如果其他 JavaScript 框架也使用 $ 符号作为简写怎么办? 其他一些 JavaScript 框架包括:MooTools.Backbone.Sammy.Cappuccino.Knockout.JavaScript MVC.Google Web Toolkit.Google Closure.Ember.Batman 以及 Ext JS. 其中某些框架也使用 $ 符号作为简写(就像 jQuery),如果您在用的两种

在框架中随处可见的责任链模式原理就是这么简单

前言 由于最近想对系统进行一个小改造,想到使用责任链模式会非常适合,因此就系统地学习总结了一下责任链模式,分享给大家. 责任链模式的定义与特点 责任链模式的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止. 标准的责任链模式,个人总结下来有如下几个特点: 链上的每个对象都有机会处理请求 链上的每个对象都持有下一个要处理对象的引用 链上的某个对象无法处理当前请求,那么它会把相同的请求传给下一个对象

三大JavaScript框架对比——AngularJS、BackboneJS和EmberJS

<三大JavaScript框架对比--AngularJS.BackboneJS和EmberJS> 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 如果有心搜索的话,你能找出上百种JavaScript框架.当我们要开发一个现代化的.敏捷酷炫的网站时,JavaScript是必备的基础技术.那么问题来了,如何在这么多JavaScript框架中选取最能满足我们需求的框架?这是一个难题.而且还有很多挑战,比如要让网站在不同的客户端浏览器上表现出一致的行为和外

常用JavaScript 框架比较

简介 JavaScript 是面向对象的脚本语言,长期以来用作 Web 浏览器应用程序的客户端脚本接口.JavaScript 让 Web 开发人员能以编程方式处理 Web 页面上的对象,并提供了一个能够动态操作这些对象的平台.在最初引入 JavaScript 时,通常只用于提供 Web 页面上的一些不重要的特性,如时钟功能和浏览器状态栏中的滚动文本等.另一个常见的特性是 "rolloverlink",就是当用户将鼠标移到图片或文本链接上时,图片或文本链接的颜色会改变.然而,近年来,随着

什么是JavaScript框架-------share

摘要:现代网站和web应用程序趋向于依赖客户端的大量的javascript来提供丰富的交互.特别是通过不刷新页面的异步请求来返回数据或从服务器端的脚本(或数据系统)中得到响应.在这篇文章中,你将会了解到javascript框架如何更快.更方便的创建互动性强.响应快得网站和web应用程序. 导言:JavaScript是一种面向对象的脚本语言,一直以来用作Web浏览器应用程序客户端脚本接口的选择.JavaScript允许Web开发人员编程与网页上的对象的工作,为凭空操作这些对象提供了一个平台.当Ja

Vue, React, AngularJS, and Angular2. 我们对流行JavaScript框架们的选择

2017-08-04 前端大全 (点击上方公众号,可快速关注) 英文:ANTONI ZOLCIAK  译文:众成翻译 www.zcfy.cc/article/vue-react-angularjs-and-angular2-our-take-on-popular-javascript-frameworks-3668.html 如有好文章投稿,请点击 → 这里了解详情 一个有趣的事实是:IBM发表的2017年最值得学习的编程语言名单中,JavaScript榜上有名.这位IT巨头指出,JS在网站中惊

如何在程序开发项目中选择合适的 JavaScript 框架,节省时间和成本的9款极佳的JavaScript框架介绍

从技术上来看,iOS,Android 和 Windows Phone 上的移动应用是使用不同的程序语言开发的,iOS 应用使用 Objective-C,Android 应用使用 Java,而 Windows Phone 应用使用 .NET. .随着 JavaScript,CSS 和 HTML 知识技能的提升,相信你也可以构建一个超赞的移动应用.在这篇博客里,我们将会介绍一些极好的 JavaScript 移动应用程序开发框架. 说到网络开发,就不得不说 JavaScript,这是一款很有前途的程序

【转】【译】JavaScript魔法揭秘--探索当前流行框架中部分功能的处理机制

推荐语: 今天推荐一篇华为同事的同事翻译的一篇文章,推荐的主要原因是作为一个华为员工居然晚上还能写文章,由不得小钗不佩服!!! 其中的jQuery.angular.react皆是十分优秀的框架,各有特点,各位可以看看 编辑:github 原文链接:Revealing the Magic of JavaScript jnotnull发布在 JavaScript译文 我们每天都在使用大量的工具,不同的库和框架已经成为我们日常工作的一部分.我们使用他们是因为我们不想重新造轮子,虽然我们可能并不知道这些