js中prototype用法(转)
JavaScript能够实现的面向对象的特征有:
·公有属性(public field)
·公有方法(public Method)
·私有属性(private field)
·私有方法(private field)
·方法重载(method overload)
·构造函数(constructor)
·事件(event)
·单一继承(single inherit)
·子类重写父类的属性或方法(override)
·静态属性或方法(static member)
例子一(JavaScript中允许添加行为的类型):可以在类型上使用proptotype来为类型添加行为。这些行为只能在类型的实例上体现。 JS中允许的类型有Array, Boolean, Date, Enumerator, Error, Function, Number, Object, RegExp, String
- <script type="text/javascript">
- Object.prototype.Property = 1;
- Object.prototype.Method = function ()
- {
- alert(1);
- }
- var obj = new Object();
- alert(obj.Property);
- obj.Method();
- </script>
例子二(prototype使用的限制):在实例上不能使用prototype,否则发生编译错误
- <script type="text/javascript">
- var obj = new Object();
- obj.prototype.Property = 1; //Error
- //Error
- obj.prototype.Method = function()
- {
- alert(1);
- }
- </script>
例子三(如何定义类型上的静态成员):可以为类型定义“静态”的属性和方法,直接在类型上调用即可
- <script type="text/javascript">
- Object.Property = 1;
- Object.Method = function()
- {
- alert(1);
- }
- alert(Object.Property);
- Object.Method();
- </script>
例子五():这个例子演示了通常的在JavaScript中定义一个类型的方法
- <script type="text/javascript">
- function Aclass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert(1);
- }
- }
- var obj = new Aclass();
- alert(obj.Property);
- obj.Method();
- </script>
例子六(JavaScript中允许添加行为的类型):可以在外部使用prototype为自定义的类型添加属性和方法。
- <script type="text/javascript">
- function Aclass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert(1);
- }
- }
- Aclass.prototype.Property2 = 2;
- Aclass.prototype.Method2 = function
- {
- alert(2);
- }
- var obj = new Aclass();
- alert(obj.Property2);
- obj.Method2();
- </script>
例子八():可以在对象上改变属性。(这个是肯定的)也可以在对象上改变方法。(和普遍的面向对象的概念不同)
- <script type="text/javascript">
- function Aclass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert(1);
- }
- }
- var obj = new Aclass();
- obj.Property = 2;
- obj.Method = function()
- {
- alert(2);
- }
- alert(obj.Property);
- obj.Method();
- </script>
例子九():可以在对象上增加属性或方法
- <script type="text/javascript">
- function Aclass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert(1);
- }
- }
- var obj = new Aclass();
- obj.Property3 = 3;
- obj.Method3 = function()
- {
- alert(3);
- }
- alert(obj.Property3);
- obj.Method3();
- </script>
例子十(如何让一个类型继承于另一个类型):这个例子说明了一个类型如何从另一个类型继承。
- <script type="text/javascript">
- function AClass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert(1);
- }
- }
- function AClass2()
- {
- this.Property2 = 2;
- this.Method2 = function()
- {
- alert(2);
- }
- }
- AClass2.prototype = new AClass();
- var obj = new AClass2();
- alert(obj.Property);
- obj.Method();
- alert(obj.Property2);
- obj.Method2();
- </script>
例子十一(如何在子类中重新定义父类的成员):这个例子说明了子类如何重写父类的属性或方法。
- <script type="text/javascript">
- function AClass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert(1);
- }
- }
- function AClass2()
- {
- this.Property2 = 2;
- this.Method2 = function()
- {
- alert(2);
- }
- }
- AClass2.prototype = new AClass();
- AClass2.prototype.Property = 3;
- AClass2.prototype.Method = function()
- {
- alert(4);
- }
- var obj = new AClass2();
- alert(obj.Property);
- obj.Method();
- </script>
js中prototype用法(转)的更多相关文章
- js中prototype,constructor的理解
连看4篇前辈的文章,记录一些知识点 Javascript继承机制的设计思想 Javascript 面向对象编程(一):封装 Javascript面向对象编程(二):构造函数的继承 Javascript ...
- json,js中typeof用法详细介绍及NaN、 null 及 undefined 的区别
JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json对象转换成json对符串 在js使用中的一个函 ...
- Js中Prototype、__proto__、Constructor、Object、Function关系介绍
一. Prototype.__proto__与Object.Function关系介绍 Function.Object:都是Js自带的函数对象.prototype,每一个函数对象都有一个显式的proto ...
- js中replace用法
js中replace的用法 replace方法的语法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则 ...
- Bom和Dom编程以及js中prototype的详解
一.Bom编程: 1.事件练习: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- 【转】Js中Prototype、__proto__、Constructor、Object、Function关系介绍
一 Prototype.__proto__与Object.Function关系介绍 Function.Object:Js自带的函数对象. prototype,每一个 ...
- JS中prototype,js原型扩展
作者:轩脉刃(yjf512)出处:(http://www.cnblogs.com/yjf512/)版权声明:本文的版权归作者与博客园共有.欢迎转载阅读,转载时须注明本文的详细链接. 原文 http:/ ...
- js中prototype与__proto__区别
proto(隐式原型)与prototype(显式原型) 显式原型 explicit prototype property:每一个函数在创建之后都会拥有一个名为prototype的属性,这个属性指向函数 ...
- js中prototype和constructor的认识
最初对js中 object.constructor 的认识: 我们都知道,在JS中有一个function的东西.一般人们叫它函数.比如下面的代码 function Person(name) { ...
随机推荐
- hive RegexSerDe View
EXTERNALkeyword它允许用户创建一个外部表.在表中的同时施工指定的路径中的实际数据(LOCATION).Hive 创建内部表时.会将数据移动到数据仓库指向的路径:若创建外部表,仅记录数据所 ...
- CI-持续集成(2)-软件工业“流水线”技术实现(转)
1 概述 持续集成(Continuous Integration)是一种软件开发实践.在本系列文章的前一章节已经对其背景及理论体系进行了介绍.本小节则承接前面提出的理论构想进行具体的技术实现. & ...
- 【十三】注入框架RoboGuice采用:(Logging via Ln)
上一篇我们简单的介绍了一下RoboGuice的使用([十二]注入框架RoboGuice使用:(Your First Injected ContentProvider)),今天我们来看下Log日志使用. ...
- 3.cocos2dx它Menu,由menu为了实现场景切换
1 头文件 TMenu.h #ifndef __TMENU_H__ #define __TMENU_H__ #include "cocos2d.h" USING_NS_CC; ...
- struts详细解释拦截器
1.拦截器:Struts2拦截器将一个Action要么Action的方法.之前或截取后场,和Struts2拦截器是可插拔,拦截器AOP一种实现. WebWork:拦截器是动态拦截Action调用的对象 ...
- 基本shell编程【3】- 常用的工具awk\sed\sort\uniq\od(转)
awk awk是个很好用的东西,大量使用在linux系统分析的结果展示处理上.并且可以使用管道, input | awk '' | output 1.首先要知道形式 awk 'command' fi ...
- 移动端 rem字体的使用demo
<!doctype html> <html> <head> <meta charset="utf-8"> <title ...
- Cocos2d-x源代码解析(1)——地图模块(3)
接上一章<Cocos2d-x源代码解析(1)--地图模块(2)> 通过前面两章的分析,我们能够知道cocos将tmx的信息结构化到 CCTMXMapInfo.CCTMXTilesetInf ...
- 面向对象的软件project——面向对象分析
为了解决软件危机.一些IT前辈国产软件project这个词汇,软件project它被引入到整个软件开发过程的维护. 软件project从程序的设计角度能够分为两类.一类是面向结构的软件project. ...
- pydev-python 链接mysql数据库(mac系统)
1.首先,实现了命令行可以运行mysql 非常清楚了,直接引用过来,多谢哈.引用:http://www.lihui.info/mac-pydev-mysqldb/ ...