`
mylove2060
  • 浏览: 331096 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Javascript 面向对象编程原型prototype的注意问题

阅读更多
  
function Person(){      
       
 }           
 Person.prototype.names= new Array(“Kevin”);      
 var person1 = new Person();      
 var person2 = new Person();      
  person1.names.push(“Andy”);      
  alert(person1.names.toString());    //kevin,Andy      
  alert(person2.names.toString());    //kevin,Andy      
  
   //所有对象都指向一个names数组      
////////////////////////////////////////////////////////////      
  function Person(){      
    this.names = new Array(“witkey”);      
  }      
  var person1 = new Person();      
  var person2 = new Person();      
  person1.names.push(“Andy”);      
     
  alert(person1.names.toString());    //Witkey,Andy      
  alert(person2.names.toString());    //Witkey      
  person2.names.push(“Kevin”);      
  alert(person1.names.toString());    //Witkey,Andy      
  alert(person2.names.toString());    //Witkey,kevin      
/*    
第一种方法使得names指向同一数组,而用构造方法可以使得每个对象拥有自己的属性实例,使用构造器的方法可以避免这种情况。    
*/   

分享到:
评论

相关推荐

    JavaScript 面向对象编程详细讲解文档

    原型是理解继承概念的关键, 我们将会教你如何建立原型, 如何检测一个对象是否是另外一个对象的原型, 及其 JavaScript 的模型与Java 面向对象编程之间的区别。我们同样会向你展示如何检测对象所包含的各种属性的方法...

    JavaScript面向对象程序设计中对象的定义和继承详解

    本文实例讲述了JavaScript面向对象程序设计中对象的定义和继承。分享给大家供大家参考,具体如下: 在面向对象的Javascript编程中,希望代码优雅有高效是非常重要的。javascript中不存在类的概念,只有对象。要想把...

    讲解JavaScript的面向对象的编程

    本人一行注释一行代码翻译了该大师的艺术作品--目的说明它是在第1,2阶段文档演示的JavaScript面向对象的书写方式的进一步改进,它是现代JavaScript面向对象编程方式(使用基本类来编码)的过渡代码--没有它就没有当今...

    跟我学习javascript的prototype原型和原型链

    但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了,最近看了一些 JavaScript高级程序设计,终于揭开了其神秘面纱。 每个函数都有一个...

    JavaScript面向对象程序设计三 原型模式(上)

    我们创建的每一个函数都有一个prototype(原型)属性,该属性是一个对象,包含可以有特定类型的所有实例共享的属性和方法。使用它的好处就在于可以让所有对象实例共享它所包含的属性和方法,也就是说,不必在构造...

    javascript面向对象程序设计实践常用知识点总结

    本文实例讲述了javascript面向对象程序设计实践常用知识点。分享给大家供大家参考,具体如下: 实践一:原型中的引用类型的属性是共享的 var Person = function(){}; Person.prototype = { info:{ name:Tom } } ...

    JavaScript使用原型和原型链实现对象继承的方法详解

    实际上JavaScript并不是一门面向对象的语言,不过JavaScript基于原型链的继承方式、函数式语法,使得编程相当灵活,所以可以利用原型链来实现面向对象的编程。 之前对JavaScript一直都是一知半解,这两天看了一下...

    JavaScript使用prototype原型实现的封装继承多态示例

    主要介绍了JavaScript使用prototype原型实现的封装继承多态,涉及javascript prototype与面向对象程序设计相关操作技巧,需要的朋友可以参考下

    javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式

    在使用面向对象编程时,对象间的继承关系自然少不了!而原型正是实现javascript继承的很重要的一种方法! 我们首先来看以下代码: 代码如下: function person(name, age) { this.name = name; this.age = age; } ...

    详解JS面向对象编程

    因为JavaScript是基于原型(prototype)的,没有类的概念(ES6有了,这个暂且不谈),我们能接触到的都是对象,真正做到了一切皆为对象 所以我们再说对象就有些模糊了,很多同学会搞混类型的对象和对象本身这个概念...

    详解JavaScript基于面向对象之创建对象(2)

    接着上文《详解JavaScript基于面向对象之创建对象(1)》继续学习。 4、原型方式  我们创建的每个函数都有一个通过prototype(原型)属性,这个属性是一个对象,它的用途是包含可以由特定类型的所有实例共享的属性和...

    javascript基于原型链的继承及call和apply函数用法分析

    1. 继承是面向对象编程语言的一个重要特性,比如Java中,通过extend可以实现多继承,但是JavaScript中的继承方式跟JAVA中有很大的区别,JS中通过原型链的方式实现继承。 (1)对象的原型:因为JS中,函数也是对象,...

    详解Javascript中prototype属性(推荐)

    在典型的面向对象的语言中,如java,都存在类(class)的...基本上,ES6的class可以看作只是一个语法糖,它的绝大部分功能,ES5都可以做到,新的class写法只是让原型对象的写法更加清晰、更像面向对象编程的语法而已。

    JS Pro-深入面向对象的程序设计之继承的详解

    一般的面向对象程序语言,有两种继承方法——接口继承(interface inheritance)和实现继承(implementation inheritance)。接口继承只继承方法签名,而实现继承则继承实际的方法。在JavaScript中,函数没有签名,...

    JavaScript 设计模式 富有表现力的Javascript(一)

    正题: 1.1 javascript的灵活性 面向对象对象的Javascript编程模式:1、可以保存状态 2、具有对象内部才能调用的方法 3、对编写的程序更能掌握其结构,能经受的起迭代开发(个人认为) 代码如下: //够造函数,也可...

    JavaScript原型和继承

    前几天看了《再谈js面向对象编程》,当时就请教哈大神,发现文章有的地方可能会造成误导(或者说和ECMA有出入),后来自己翻一翻ECMA,总算找到“标准”的理解……本文适合初学者,特别是对构造函数、原型和原型链...

    JavaScript中的类(Class)详细介绍

    在JavaScript中,可以使用类(Class)来实现面向对象编程(Object Oriented Programming)。不过,JavaScript中的类与Java中的有所不同,其相应的定义和使用也不一样。 JavaScript中类的定义 在JavaScript中,所有从同一...

    在JavaScript中实现类的方式探讨

    有没有可能在 javascript 中实现面向对象编程的方式呢? 答案是可能的,javascript 是可以创建对象的!这种对象可以包含数据及能够操作数据的方法,甚至可以包含其他对象。它没有类但拥有构造函数;它没有类继承...

    JavaScript的六种继承方式(推荐)

    继承是面向对象编程中又一非常重要的概念,JavaScript支持实现继承,不支持接口继承,实现继承主要依靠原型链来实现的。 原型链 首先得要明白什么是原型链,在一篇文章看懂proto和prototype的关系及区别中讲得非常...

Global site tag (gtag.js) - Google Analytics