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 相关文章推荐
js传中文参数controller里获取参数乱码问题解决方法
Jan 03 Javascript
JavaScript严格模式禁用With语句的原因
Oct 20 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
Mar 24 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
Oct 14 Javascript
JS实现颜色梯度与渐变效果完整实例
Dec 30 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
Mar 09 Javascript
vue-cli的webpack模板项目配置文件分析
Apr 01 Javascript
jQuery实现的简单在线计算器功能
May 11 jQuery
JS简单生成随机数(随机密码)的方法
May 11 Javascript
JavaScript运动框架 多值运动(四)
May 18 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
Feb 21 Javascript
Node.js操作MongoDB数据库实例分析
Jan 19 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
一个程序下载的管理程序(三)
2006/10/09 PHP
PHP curl 并发最佳实践代码分享
2012/09/05 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
2019/05/01 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
python读取文本中数据并转化为DataFrame的实例
2018/04/10 Python
Python常用特殊方法实例总结
2019/03/22 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
2019/08/13 Python
Python全栈之列表数据类型详解
2019/10/01 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
Unix控制后台进程都有哪些进程
2016/09/22 面试题
单位门卫岗位职责
2013/12/20 职场文书
运动会广播稿80字
2014/01/23 职场文书
转预备党员政审材料
2014/02/06 职场文书
十佳中学生事迹材料
2014/06/02 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
2015新学期校长寄语(3篇)
2015/03/25 职场文书
2016年感恩父亲节活动总结
2016/04/01 职场文书
win10下go mod配置方式
2021/04/25 Golang