C++,java是基于类的语言,主要通过类来实现继承。

javascript是基于原型的语言,通过原型来实现继承。

什么是原型?每种物质,都可以追根溯源,原型就是对象的根源。继承就是追根溯源。

javascript里谈继承,只涉及到一个东西:对象Object。每个对象都有自己的原型,都可以从自己的原型处继承属性或者方法。

每个对象都有自己的prototype,逐层追溯,直到null,形成所谓的原型链。

null对象是原型链的终点,追根溯源止于null.

当获取一个属性,或者调用一个方法,都是按此原型链追溯,如果直到null都没有找到,就返回undefined。

var o={mem:1};  //Object
//原型链:o==>Object.prototype==>null var a=["kim","joe",""]; //Array
//原型链:a==>Array.prototype==>Object.prototype==>null var f =function(){
return true;
} //function
//原型链:a==>Function.prototype==>Object.prototype==>null

javascript原型prototype浅识的更多相关文章

  1. javascript原型Prototype【转】

    转自:http://www.cnblogs.com/starof/p/4190404.html 在javaScript创建对象一文中提到过:用构造函数创建对象存在一个问题即同一构造函数的不同实例的相同 ...

  2. javascript原型Prototype

    在javaScript创建对象一文中提到过:用构造函数创建对象存在一个问题即同一构造函数的不同实例的相同方法是不一样的,所以我们用原型把构造函数中公共的属性和方法提取出来进行封装,达到让所有实例共享的 ...

  3. javascript原型prototype的一个你不一定知道的理解

    原型和原型链的故事 相关文章: 为什么原型继承很重要 先来看看一段小代码用以引入要讲的小故事. function Foo() {}; var f1 = new Foo(); Foo.prototype ...

  4. javascript 原型(prototype 、__proto__、函数、对象)

    一.类型 1.JavaScript中分为值类型(string/boolean/null/number/undefind).引用类型(数组.对象.函数): 2.数组.函数.对象都是对象: 对象是由函数创 ...

  5. JavaScript 原型 prototype 使用经验

    初始化一个父类,并添加方法 1function Foo(){}2Foo.prototype.sayName = function(){3    return '初始原型';4}56var foo1 = ...

  6. 浅谈系列之 javascript原型与对象

    在我学习与使用javascript三个月中,我一直对javascript的继承关系以及prototype理解不清,导致很多时候为什么这么用说不出个所以然来.截止到本周为止,通过之前的学习以及自己的再学 ...

  7. 深入理解javascript原型和闭包(3)——prototype原型

    既typeof之后的另一位老朋友! prototype也是我们的老朋友,即使不了解的人,也应该都听过它的大名.如果它还是您的新朋友,我估计您也是javascript的新朋友. 在咱们的第一节(深入理解 ...

  8. 从mixin到new和prototype:Javascript原型机制详解

    从mixin到new和prototype:Javascript原型机制详解   这是一篇markdown格式的文章,更好的阅读体验请访问我的github,移动端请访问我的博客 继承是为了实现方法的复用 ...

  9. javascript进阶-原型prototype

    一.javascript原型认识 很多编程语言都有类的概念,我们可以拿原型和类进行比较,看看它们之间的区别以及相同点在哪里. 1.类:类是一个具体事物的抽象所以类是一个抽象的东西,在面向对象中类可以用 ...

随机推荐

  1. 在 Windows 10 中启用 Windows Photo Viewer

    本文版权归cxun所有,如有转载请注明出处与本文链接,谢谢!原文地址:http://www.cnblogs.com/cxun/p/4727323.html 不知大家在使用了Win10之后有没有这样感受 ...

  2. php用正则检测某字段开头是否为字母

    //判断数组都已字段的开头是否为字母 $data=array();  for($i=0;$i<$length;$i++){ //是,则把数组重新取出赋值if (preg_match(" ...

  3. Struts2相关面试题

    Struts2面试题 1.struts2工作流程 Struts 2框架本身大致可以分为3个部分: 核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件. 核心 ...

  4. 运行第一个abp项目VS2015+localDB

    ASP.NET Boilerplate,简称ABP 详细深入:可以参考如下文章 http://www.cnblogs.com/mienreal/p/4528470.html http://www.cn ...

  5. DataGrid获取当前行某列值

    前言: 本文将给大家介绍一下, 在ASP.NET MVC环境下,如何利用Jquery MiniUI(一个专业WebUI控件库)来获取Datagrid中的值,官网没有涉及到的内容:如何获取当前行某一列的 ...

  6. WCF、MongoDB

    http://www.cnblogs.com/quietwalk/archive/2011/08/09/2132573.html http://www.cnblogs.com/huangxinchen ...

  7. socket网络编程

    一.客户端/服务器架构 C/S架构,包括 1.硬件C/S架构(打印机) 2.软件C/S架构(Web服务) 最常用的软件服务器就是Web服务器,一台机器里放了一些网页或Web应用程序,然后启动服务,这样 ...

  8. Linux手绑IP

    修改配置文件vim /etc/sysconfig/network-scripts/ifcfg-eth0 注释dhcp#BOOTPROTO="dhcp" 注释ipv6#IPV6INI ...

  9. CSS3 :target伪类实现Tab切换效果

    用:target伪类实现Tab切换效果真的非常简单!简单到什么程度呢?它只需要下面这些代码. style.css: .song-info { position: absolute; backgroun ...

  10. 利用wangEditor获取文章格式和内容

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs& ...