prototype 学习笔记整理


Posted in Javascript onJuly 17, 2009

var Class = {
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}
定义了一个class函数作为创建类的模版或者说是原型
使用方法

<html> 
<title>Test Class.create()</title> 
<head> 
<script language="JavaScript" type="text/javascript" src="prototype.js"></script> 
<script> 
var llinzzi= Class.create(); 
llinzzi.prototype = { 
initialize:function(){ 
document.writeln('This is create when initialize'); 
}, 
fuv:function(){document.writeln('This is inline method');} 
} 
var linChild = new llinzzi(); 
</script> 
</head> 
<body> 
<script> 
//window.onload(linChild); 
window.onload(linChild.fuv()); 
</script>; 
</body> 
</html>

////
This is create when initialize This is inline method ;
/////
就是当采用了prototype的Class.create();方法创建对象的时候,initialize作为特殊的方法,在创建实例的时候被执行,用以初始化.
继承
Object.extend = function(destination, source) {
for (var property in source) {
destination[property] = source[property];
}
return destination;
}
此方法将拷贝所有的source object的属性和方法到destination object.
Prototype 对Object类进行的扩展主要通过一个静态函数Object.extend (destination, source)实现了JavaScript 中的继承。 从语义的角度, Object.extend (destination, source)方法有些不和逻辑, 因为它事实上仅仅实现了从源对象到目标对象的全息拷贝。不过你也可以这样认为:由于目标对象拥有了所有源对象所拥有的特性, 所以看上去就像目标对象继承了源对象(并加以扩展)一样.
// make a (shallow) copy of obj1
var obj1 = {
method : "post",
args : ""
};
var obj2 = Object.extend({}, obj1);
使用 例子:
<html> 
<title>Test Object.extend</title> 
<head> 
<script language="JavaScript" type="text/javascript" src="prototype.js"></script> 
<script> 
function log(message) { 
document.writeln(" >>>>>: " +message); 
} 
var obj1= { 
method : "post", 
args : "" 
}; 
var obj2 = Object.extend({}, obj1); 
log(obj2.method); 
log(obj1 == obj2); 
log(obj1.method); 
log(obj2 == obj1); 
</script> 
</head> 
<body> 
</body> 
</html>

// merges in the given options object to the default options object
Object.extend(options, {
args : "data=454",
onComplete : function() { alert("done!"); }
});
options.method // "post"
options.args // "ata=454"
options.onComplete // function() { alert("done!"); }
使用例子:
<html> 
<title>Test Object.extend</title> 
<head> 
<script language="JavaScript" type="text/javascript" src="prototype.js"></script> 
<script> 
function log(message) { 
document.writeln(" >>>>>: " +message); 
} 
var options= { 
method : "post", 
args : "" 
}; 
Object.extend(options, { 
args : "data=454", 
onComplete : function() { alert("done!");} 
}); 
options.method // "post" 
options.args // "ata=454" 
options.onComplete // function() { alert("done!"); } 
log(options.method); 
log(options.args); 
log(options.onComplete); 
</script> 
</head> 
<body> 
</body> 
</html>
Javascript 相关文章推荐
javascript一点特殊用法
May 28 Javascript
JQery jstree 大数据量问题解决方法
Mar 09 Javascript
Jquery实现显示和隐藏的4种简单方式
Aug 28 Javascript
javascript根据时间生成m位随机数最大13位
Oct 30 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
May 03 Javascript
jQuery中$(function() {});问题详解
Aug 10 Javascript
jquery实现定时自动轮播特效
Dec 10 Javascript
JavaScript设计模式初探
Jan 07 Javascript
AngularJS2中一种button切换效果的实现方法(二)
Mar 27 Javascript
javascript防篡改对象实例详解
Apr 10 Javascript
vue过渡和animate.css结合使用详解
Jun 14 Javascript
JavaScript变量作用域及内存问题实例分析
Jun 10 Javascript
表单元素事件 (Form Element Events)
Jul 17 #Javascript
优化 JavaScript 代码的方法小结
Jul 16 #Javascript
Javascript 事件流和事件绑定
Jul 16 #Javascript
js 对象是否存在判断
Jul 15 #Javascript
js 实现无缝滚动 兼容IE和FF
Jul 15 #Javascript
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
Jul 14 #Javascript
JavaScript 继承详解(四)
Jul 13 #Javascript
You might like
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
PHP教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
深入Memcache的Session数据的多服务器共享详解
2013/06/13 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
2016/08/12 PHP
PHP面相对象中的重载与重写
2017/02/13 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
JAVASCRIPT keycode总结
2009/02/04 Javascript
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
js中设置元素class的三种方法小结
2011/08/28 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
2016/11/21 Javascript
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
Python爬取附近餐馆信息代码示例
2017/12/09 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
tornado+celery的简单使用详解
2019/12/21 Python
python动态文本进度条的实例代码
2020/01/22 Python
西班牙多品牌鞋店连锁店:Krack
2018/11/30 全球购物
意大利香水和化妆品购物网站:Parfimo.it
2019/10/06 全球购物
世界上最大的乐谱选择:Sheet Music Plus
2020/01/18 全球购物
如何查找和删除数据库中的重复数据
2014/11/05 面试题
工会趣味活动方案
2014/08/18 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
悬空寺导游词
2015/02/05 职场文书