JavaScript抽象类及Class.create备忘
而JavaScript虽不是一门户严格意义上的面向对象语言,但,它也可以有自己的面向对象实现。
当然包括抽象。
在JavaScript中,虚方法可以看作该类中没有定义的方法,但已经通过this指针使用了.
通过下面的示例可以看出:
2{
3 {
4 this.ini.apply(this,arguments);
5 //这里的arguments是构造函数的
6//this.ini通过this调用,但却是未定义的。
7//将在其prototype中给出实现
8 }
9}
10//实现虚方法 ini,且提供给构造函数调用
11tmp.prototype.ini=function()
12{
13 alert(arguments[0]);
14}
15var tt=new tmp('a');
在prototype.js中,对抽象类及类的创建有一段经典的实现:
如下:
2 {
3 create:function()
4 {
5 return function() //返回一个匿名函数,也就是一个函数对象
6 {
7 this.ini.apply(this,arguments); //此时的arguments是函数对象的构造函数传递过来的参数对象
8 }
9 }
10 }
11
12 var tmp=Class.create();
13
14 //此时tmp相当于
15 //var tmp=function()
16 //{
17 // this.ini.apply(this,arguments);
18 //}
19 //可以通过alert(tmp.toString());看出
20 tmp.prototype.ini=function()
21 {
22 alert(arguments.length); //这里的arguments是ini自身的参数
23 }
24 var ttt=new tmp('adf');
因为掉入了面向对象的泥潭,导致对Class.create居然久久不能明了
很汗,一个简单的返回匿名函数居然将我迷糊了很久。
因此如上代码记录在此,以作备忘
转载于:https://www.cnblogs.com/McJeremy/archive/2009/01/14/1375779.html
JavaScript抽象类及Class.create备忘相关推荐
- JavaScript Office文档在线编辑备忘
来源: http://www.cnblogs.com/jianyi0115/articles/677712.html http://www.cnblogs.com/fxwdl/archive/2009 ...
- js-new、object.create、bind的模拟实现【转载备忘】
//创建Person构造函数,参数为name,age function Person(name,age){this.name = name;this.age = age; }function _new ...
- Spring Spring MVC Hibernate 整合备忘
以下为此三种框架整合配置的详细备注,以及部分问题备忘 项目结构和配置文件可访问 Github 查看 1. pom.xml 尽量使用 Maven 管理项目依赖以减少包引入时的麻烦,以及避免跨开发工具问题 ...
- Aurora开发备忘
Aurora开发备忘 Aurora开发备忘 1 screen文件 1.1 字段只读 1.2 lov 弹出式选择框,带查询按钮和查询条件 1.3 通过 js手动执行dataSet中的查询 1.4 在js ...
- jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要)
JqGrid相关操作备忘 方法列表 特别推荐:怎样获取某一方某一列的值: [html] view plaincopy var rowdata=jQuery("#list").jqG ...
- Webstorm常用快捷键备忘(Webstorm入门指南)
WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为"Web前端开发神器"."最强大的HTML5编辑器". ...
- mysql一些操作个人备忘(持续更新)
安装mysql数据库目录 1./usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/home/mysql/var ##指定安装后的 ...
- vue 插件 滑块验证_VUE接入腾讯验证码功能(滑块验证)备忘
最近在用VUE做个简单的用户系统,登录注册需要验证码,想找个那种拖动的,找geetest居然已经不面向小客户了(或者说只有收费套餐). 腾讯防水墙的验证码免费使用,有2000/小时的免费额度,对于小网 ...
- azure_Azure ML算法备忘单
azure 云计算 , 机器学习 (Cloud Computing, Machine Learning) A common question often asked in Data Science i ...
最新文章
- C# 实现Oracle中的数据与Excel之间的转换
- 第8章3节《MonkeyRunner源码剖析》 5
- 天联高级版客户端_天联客户端登录的KIS旗舰版打印单据问题
- 21-Heartbeat配置文件authkey重要参数讲解
- mysql 不知道这样的主机_求救!!连接本机数据库时出现不知道这样的主机
- kafka 集群_单机版kafka集群部署
- 快速入门人工智能,这波福利不能错过!
- Hibernate 4.3 ORM工具
- AbstractEndpoint 和 ProtocolHandler
- aspose word 转pdf中文乱码_pdf转word——都是乱码!怎么办
- ios 怎么判断字符串的字节数_iOS 计算字符串长度-boundingRectWithSize:
- 直接拿来用!最火的Android开源项目(一) (转)
- 红皮书--调试及修复
- 今天rpm装glibc和glibc-common版本,出现二个包相互依赖,解决办法
- android--------自定义控件 之 组合控件篇
- DevOps使用教程 华为云(3)规划 用户故事地图 需求规划 功能规划 思维导图
- 摄氏温度和华氏温度换算(vb源码)
- 音视频常见码率、帧率等概念介绍
- h5让图片转圈的动效,让页面动起来
- 使用阿里云实现简单的直播
热门文章
- LeetCode 551. 学生出勤记录 I
- LeetCode 134. 加油站(贪心)
- LeetCode 707. 设计链表(List)
- LeetCode 897. 递增顺序查找树(中序遍历)
- Python批量删除错误图片、修改文件名以及删除重复图片
- celery异步执行任务在Django中的应用实例
- Hive关于数据表的增删改(内部表、外部表、分区表、分桶表 数据类型、分隔符类型)
- 怎么给域账号映射服务器,如何给每个域用户映射网络驱动器?
- 卖萌屋算法工程师思维导图part3—深度学习篇
- ACL 2010-2020研究趋势总结