JavaScript设计模式的一种有趣的封装小技巧
javascript设计模式第一张有一个有趣的实现继承的方法,当然javascript本质上是实现继承,还不是典型意义上的"is-a"的逻辑继承或者说是语义继承。基本的方法就是通过function的prototype属性。
一,很简单的方法
<script type="text/javascript">
<!--
var Anim = function(){};
Anim.prototype.start = function(){alert('start');};
Anim.prototype.stop = function(){alert('stop');};
var obj = new Anim();
obj.start();
obj.stop();
// -->
</script>
二,把prototype的整体赋值-对象字面量法
<script type="text/javascript">
<!--
var Anim = function(){};
Anim.prototype = {
start:function(){alert('start');},
stop:function(){alert('stop');}
};
var obj = new Anim();
obj.start();
obj.stop();
// -->
</script>
注意:对prototype属性整体赋值只能是用户自定义的构造函数,对javascript内置的构造函数是不能的,如Function.prototype= {};
是无效的。
三,把prototype的赋值提到Function对象的prototype来操作。
<script type="text/javascript">
<!--
//对Function构造函数的prototype增加扩张函数
Function.prototype.extend = function(method, func){
this.prototype[method] = func;
return this; //支持链式操作
};
//Anim是新的Function实例,它的[[prototype]]是指向Function.prototype,因此Anim.extend可以通过搜索原型链
//而调用Function.prototype.extend方法,该方法返回this,也就是对象Anim
var Anim = function(){};
Anim.extend('start', function(){alert('start');}).extend('stop', function(){alert('stop');});
var obj = new Anim();
obj.start();
obj.stop();
// -->
</script>
相关文档:
在Visual Studio中,所有的ASP.NET 2.0控件都是自定义控件,创建自己的自定义控件一般需要完成以下三步。
(1)在站点APP_Code下创建一个新类;
(2)修改这个类,让它成为WebControl类(包含在System.Web.UI.WebControls命名空间)的派生类;
(3)重写基类(即WebControl类)的RenderContents()方法。
下面是一个最简单的ASP.NE ......
在做网站的时候,我们经常需要对尺寸超标的图片进行缩放。
由于浏览器的差异,有些代码某些浏览器工作不正常。
经过研究得到了以下的代码,它可以在IE6,IE8,FireFox中完美地按比例缩放图片而不失真。
//改变图片大小
function resizepic(o)
{
var maxwidth=550; //定义最大宽度
var maxheight=800;&nbs ......
JavaScript时间差计算函数
<mce:script language="javascript"><!--
Date.prototype.dateDiff = function(interval,objDate){
//若參數不足或 objDate 不是日期物件則回傳 undefined
if(arguments.length<2||objDate.constructor!=Date) return undefined;
......
--------------------------------------------------------------------------------
<body>
<mce:script type="text/javascript"><!--
document.write("如果显示了这段文字,那么您的浏览器支持 JavaScript!")
// --></mce:script>
<noscript>No JavaScript support!</noscript&g ......
javascript的系统函数
1,encodeURI方法
返回对一个URI字符串编码中的结果,本质是UTF-8编码
eg:
var urlStr = encodeURI('http://fanli.qq.com/index.html?a=ddd&msg=中国');
alert(urlStr);
2, decodeUR ......