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 相关文章推荐
解决FireFox下[使用event很麻烦]的问题
Nov 26 Javascript
JS构建页面的DOM节点结构的实现代码
Dec 09 Javascript
js中函数声明与函数表达式
Jun 03 Javascript
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
Sep 09 Javascript
学习Javascript闭包(Closure)知识
Aug 07 Javascript
整理一下常见的IE错误
Nov 18 Javascript
react开发教程之React 组件之间的通信方式
Aug 12 Javascript
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
Dec 09 Javascript
React Native使用fetch实现图片上传的示例代码
Mar 07 Javascript
Vuex 模块化使用详解
Jul 31 Javascript
详解datagrid使用方法(重要)
Nov 06 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的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
dojo 之基础篇
2007/03/24 Javascript
看了就知道什么是JSON
2007/12/09 Javascript
jQuery 全选效果实现代码
2009/03/23 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
JQuery中getJSON的使用方法
2010/12/13 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
js从Cookies里面取值的简单实现
2014/06/30 Javascript
JS获取客户端IP地址、MAC和主机名的7个方法汇总
2014/07/21 Javascript
通过location.replace禁止浏览器后退防止重复提交
2014/09/04 Javascript
jquery 实现两Select 标签项互调示例代码
2014/09/25 Javascript
JavaScript实现继承的4种方法总结
2014/10/16 Javascript
在Node.js中使用HTTP上传文件的方法
2015/06/23 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
原生js实现简单的模态框示例
2017/09/08 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
Vant picker 多级联动操作
2020/11/02 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python模拟enum枚举类型的方法小结
2015/04/30 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
在keras中实现查看其训练loss值
2020/06/16 Python
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
大学生活动策划方案
2014/02/10 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
员工2014年度工作总结
2014/12/09 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers