js中关于prototype学习(2015年1月5号晚)
prototype在js中为原型,只要是对象都有原型,最高原型为Object。
函数作为一特殊的对象,下面探讨prototype(原型)和function(函数)之间的关系。
function A (name){
this.name = name;
this.f1= function(){
alert("这是A的对象方法,每个对象都可以调用"+this.name);
}
} A.fA=function (){
alert("这是类方法,只用类可以调用,对象不可以调用");
} //下面使B继承A
function B (name){
this.name = name;
this.f2=function(){
alert("这是B的对象的方法,每个对象都可以调用"+this.name);
}
}
B.fB= function (){
alert("这是B类的方法,对象不可调用");
}
//进行继承操作
B.prototype = A;
下面分别进行调用测试:
1.只对于A函数进行测试:
var a = new A("hello");//创建一个A对象a
//测试分别调用f1()和fA()方法
a.f1();
a.fA();
通过测试可以得出,只用f1()方法执行了,而fA()方法没有被执行。这种形式有点类似java中的类与对象、类方法和对象方法。
f1()是对象方法,只要是A的对象就有这种方法;fA()是类方法,只有类级别的才具用这种方法,此时正确调用方法为A.fA();
ps:类方法只用类可以调用,对象方法只用对象可以调用,类不能调用对象方法,对象不能调用类方法。
2.对B进行测试:
var b = new B("world");//创建B的对象b
//用对象b,分调用f1(),fA(),f2(),fB()
b.f1();
b.fA();
b.f2();
b.fB();
对上面4中方法进行单条测试,通过测试可得出,只用方法fA()、f2()可以执行。
分析:在使用B.prototype=A;时就是声明对象B继承了对象A,这种继承只是继承了A中的fA(),应为fA()为类方法,
对于f2(),fB()前面已经说明完毕,
ps: prototype 在继承中只能继承类级别的方法和属性,不是去笼统的都继承。
js中关于prototype学习(2015年1月5号晚)的更多相关文章
- 论js中的prototype
今天在阅读代码时,碰到了prototype //判断是否是数组function isArray(obj) { return Object.prototype.toString.call(obj) == ...
- JS中childNodes深入学习
原文:JS中childNodes深入学习 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <ti ...
- JS中对于prototype的理解
JS中的prototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个 ...
- 帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
作为一名前端工程师,必须搞懂JS中的prototype.__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞 ...
- JS中的prototype (转载)
JS中的prototype JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是 ...
- JS中的prototype、__proto__与constructor属性
作为一名前端工程师,必须搞懂JS中的prototype.__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞 ...
- JS中的prototype、__proto__与constructor
1.前言 作为一名前端工程师,必须搞懂JS中的prototype.__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关 ...
- JS中的prototype、__proto__与constructor(图解)
作为一名前端工程师,必须搞懂JS中的prototype.__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞 ...
- JS中的prototype
JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个 ...
随机推荐
- [C# 基础知识系列]C#中易混淆的知识点
一.引言 今天在论坛中看到一位朋友提出这样的一个问题,问题大致(问题的链接为:http://social.msdn.microsoft.com/Forums/zh-CN/52e6c11f-ad28-4 ...
- ORA-04031 With Leak in "OBJ STAT MEMO" Allocations Seen in V$SGASTAT on 10.2.0.5 (文档 ID 1350050.1)
APPLIES TO: Oracle Server - Enterprise Edition - Version: 10.2.0.5<max_ver> and later [Relea ...
- mysql information_schema
SELECT TABLE_NAME,COLUMN_NAME,CHARACTER_MAXIMUM_LENGTH,COLUMN_COMMENT FROM COLUMNS WHERE TABLE_SCHEM ...
- 基本配置6-被忽悠进了CentOS 6
今天突然想到原来配置的apache2与tomcat的连接,测试发现有2个小问题: 1.<%=path%>丢失问题:原来配置的 ProxyPass /xxx http://192.168.1 ...
- 翻译:Knockout 快速上手 - 5: 你需要知道的顶级特性 续
Utilities Knockout 提供了许多可以你开发中使用的工具,你可以在 ko.utils 命名空间中找到它们,我最喜欢的工具如下所示: extend: 这个方法将两个对象合并在一起,调用这个 ...
- java.io.Serializable浅析
转自:http://www.cnblogs.com/gw811/archive/2012/10/10/2718331.html Java API中java.io.Serializable接口源码: p ...
- Java垃圾收集器之--Garbage-First Collector
简介 Garbage-First(G1)垃圾收集器全面支持JDK7 Upate 4及后续版本.G1收集器是一个服务器形式(server-style)的垃圾收集器,主要用于内存大.多处理器的 ...
- matlab 椭圆方程拟合
拟合椭圆首先要知道各个点的坐标,然和带入如下公式: x = [59 136 58 137 57 137 56 137 55 138 54 139 53 140 52 141 51 142 51 143 ...
- HP Mobile Center 1.01 Related System Requirements
最近要开始使用HP Mobile Center,以下是我在官网上搜集的配置信息,包含软硬件. Reference: http://mobilecenterhelp.saas.hp.com/en/la ...
- NOI2002 银河英雄传说
P1196 银河英雄传说 367通过 1.1K提交 题目提供者该用户不存在 标签并查集NOI系列2001(或之前) 难度提高+/省选- 提交该题 讨论 题解 记录 最新讨论 莱因哈特什么鬼? 私人代码 ...