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 相关文章推荐
学习ExtJS(一) 之基础前提
Oct 07 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
May 23 Javascript
js onload事件不起作用示例分析
Oct 09 Javascript
javascript 原型链维护和继承详解
Nov 26 Javascript
js实现照片墙功能实例
Feb 05 Javascript
Js实现自定义右键行为
Mar 26 Javascript
JavaScript学习笔记之数组随机排序
Mar 23 Javascript
原生js仿jquery实现对Ajax的封装
Oct 04 Javascript
jQuery实现判断控件是否显示的方法
Jan 11 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
Dec 06 Javascript
将RGB值转换为灰度值的简单算法
Oct 09 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
Oct 30 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开发需要注意的安全问题
2010/09/01 PHP
Yii框架数据模型的验证规则rules()被执行的方法
2016/12/02 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
js如何获取file控件的完整路径具体实现代码
2013/05/15 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
JavaScript中的Math.SQRT1_2属性使用简介
2015/06/14 Javascript
详解 javascript中offsetleft属性的用法
2015/11/11 Javascript
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
详谈commonjs模块与es6模块的区别
2017/10/18 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
微信小程序引入Vant组件库过程解析
2019/08/06 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
2020/08/10 Javascript
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
利用python实现数据分析
2017/01/11 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
python 实现表情识别
2020/11/21 Python
运动会通讯稿500字
2014/02/20 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
交通事故责任认定书
2015/08/06 职场文书
暑假打工感想
2015/08/07 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书