1:  function Person (name,age) {
   2:              this.name = name;
   3:              this.age = age;
   4:          }
   5:   
   6:          Person.prototype = {
   7:              constructor : Person, // 原型{}这种格式得重新定义指向 要不然默认是Object
   8:              getInfo: function() {
   9:                  return 'A ' + this.name + ' ' + this.age + '.';
  10:              }
  11:          };
  12:   
  13:          var p = new Person('Lily',18);
  14:   
  15:          /**
  16:           * Person的prototype属性指向Person的prototype对象
  17:           * Person的实例p的__proto__属性指向Preson的prototype对象
  18:           * Preson的prototype对象的constructor属性指向Person
  19:           */
  20:          console.log(p.constructor); // Person
  21:          console.log(p.__proto__ == Person.prototype); // true
  22:          console.log(p.__proto__.constructor == Person); // true  p.__proto__ 指向Person的prototype对象 Person的prototype对象constructor属性指向Person构造器
  23:   
  24:          //Object.create EcmaScript5 以上有
  25:          var Person2 = Object.create(p); //复制对象
  26:          console.log(Person2.name);// Lily
  27:          Person2.age = 20;
  28:          console.log(Person2.age);// 20
  29:          console.log(p.age);// 20
  30:   
  31:          var o1 = Object.create({x:1, y:2});
  32:          var o2 = Object.create(Object.prototype);
  33:          console.log(o2);
  34:          console.log(new Object());
   1:  function Person (name,age) {
   2:              this.name = name;
   3:              this.age = age;
   4:          }
   5:   
   6:          Person.prototype = {
   7:              constructor : Person, // 原型{}这种格式得重新定义指向 要不然默认是Object
   8:              getInfo: function() {
   9:                  return 'A ' + this.name + ' ' + this.age + '.';
  10:              }
  11:          };
  12:   
  13:          var p = new Person('Lily',18);
  14:   
  15:          /**
  16:           * Person的prototype属性指向Person的prototype对象
  17:           * Person的实例p的__proto__属性指向Preson的prototype对象
  18:           * Preson的prototype对象的constructor属性指向Person
  19:           */
  20:          console.log(p.constructor); // Person
  21:          console.log(p.__proto__ == Person.prototype); // true
  22:          console.log(p.__proto__.constructor == Person); // true  p.__proto__ 指向Person的prototype对象 Person的prototype对象constructor属性指向Person构造器
  23:   
  24:          //Object.create EcmaScript5 以上有
  25:          var Person2 = Object.create(p); //复制对象
  26:          console.log(Person2.name);// Lily
  27:          Person2.age = 20;
  28:          console.log(Person2.age);// 20
  29:          console.log(p.age);// 20
  30:   
  31:          var o1 = Object.create({x:1, y:2});
  32:          var o2 = Object.create(Object.prototype);
  33:          console.log(o2);
  34:          console.log(new Object());

js 原型的更多相关文章

  1. JS原型链

    JS作为发展了多年了对象语言,支持继承,和完全面向对象语言不同的是,JS依赖原型链来实现对象的继承. 首先JS的对象分两大类,函数对象和普通对象,每个对象均内置__proto__属性,在不人为赋值__ ...

  2. 深入分析JS原型链以及为什么不能在原型链上使用对象

    在刚刚接触JS原型链的时候都会接触到一个熟悉的名词:prototype:如果你曾经深入过prototype,你会接触到另一个名词:__proto__(注意:两边各有两条下划线,不是一条).以下将会围绕 ...

  3. 【09-23】js原型继承学习笔记

    js原型继承学习笔记 function funcA(){ this.a="prototype a"; } var b=new funcA(); b.a="object a ...

  4. js原型

    1.js基本类型和对象类型 js的简单类型包括数字(其中NaN为数字类型).字符串(类似'A'为字符,js没字符类型).布尔值.null值和undefined值.其他所有的值都是对象.数字.字符串和布 ...

  5. js原型链与继承(初体验)

    js原型链与继承是js中的重点,所以我们通过以下三个例子来进行详细的讲解. 首先定义一个对象obj,该对象的原型为obj._proto_,我们可以用ES5中的getPrototypeOf这一方法来查询 ...

  6. JS 原型链图形详解

    JS原型链 这篇文章是「深入ECMA-262-3」系列的一个概览和摘要.每个部分都包含了对应章节的链接,所以你可以阅读它们以便对其有更深的理解. 对象 ECMAScript做为一个高度抽象的面向对象语 ...

  7. js原型解析

    我们都知道javascript因为具有了继承以及变量等等一系列的特性之后才被人们认为具有一门编程语言的资格,在后续的不断发展中,js在原生的基础上扩展了基于jquery等等的库,甚至衍生了像node. ...

  8. 深入理解JS原型链与继承

    我 觉得阅读精彩的文章是提升自己最快的方法,而且我发现人在不同阶段看待同样的东西都会有不同的收获,有一天你看到一本好书或者好的文章,请记得收藏起来, 隔断时间再去看看,我想应该会有很大的收获.其实今天 ...

  9. 学习zepto.js(原型方法)

    学习zepto.js(原型方法)[1] 转载 新的一周,新的开始,今天来学习一下zepto里边的原型方法,就是通过$.进行调用的方法,也是可以通过$.fn进行扩展的方法: $.camelCase(): ...

  10. js原型链部分详细使用说明案例

    1. 'index.html'文件 ```html <!DOCTYPE html> <html lang="en"> <head> <me ...

随机推荐

  1. 【JAVA编码专题】总结

    第一部分:编码基础 为什么需要编码:用计算机看得懂的语言(二进制数)表示各种各样的字符. 一.基本概念 ASCII.Unicode.big5.GBK等为字符集,它们只定义了这个字符集内有哪些字符,以及 ...

  2. JAVA单元测试Junit

    1.为什么要用Junit 做了很多项目,几乎没怎么用过Java的单元测试,是因为它没有用吗?显然不是,是自己的开发方式太不规范!对于大型的软件项目,单元测试不仅有效实用,还非常有必要!它能够测试每个方 ...

  3. 用python随机生成数据,再插入到postgresql中

    用python随机生成学生姓名,三科成绩和班级数据,再插入到postgresql中. 模块用psycopg2 random import random import psycopg2 fname=[' ...

  4. 【好程序员笔记分享】——iOS开发之纯代码键盘退出

    -iOS培训,iOS学习-------型技术博客.期待与您交流!------------ iOS开发之纯代码键盘退出(非常简单)     iOS开发之纯代码键盘退出 前面说到了好几次关于键盘退出的,但 ...

  5. win7 下的open live writer代码插件

    open live writer 是博客园官方推荐的编辑器.恰好被它的各种便利吸引住了,于是花点时间研究一下,结果又用了好长时间,因为代码插件一时安装不了.在这里推荐小伙伴们可以先去看看这篇博文:ht ...

  6. 关于viewWithTag的一点说明

    通常我们使用viewWithTag如下情形: 如果我们用了一个父View,上面放了多个子view, 每个子view都通过从0开始的Tag值来进行标志,以便于后期在像View上直接使用viewWithT ...

  7. Android导航菜单横向左右滑动并和下方的控件实现联动

    这个是美团网个人订单的效果,找了很多地方都没找到,自己研究了两天终于弄出来了^_^,有什么问题希望大家指出来,谢谢. 实现原理是上方使用HorizontalScrollView这个可以水平横向拖动的控 ...

  8. 发送cookie

  9. flexbox自动完成

    1.引入文件 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ty ...

  10. poj 3180 The Cow Prom(tarjan+缩点 easy)

    Description The N ( <= N <= ,) cows are so excited: it's prom night! They are dressed in their ...