美文网首页
原型对象存在的问题及解决方式

原型对象存在的问题及解决方式

作者: Idoa | 来源:发表于2016-12-11 23:39 被阅读21次

一.原型对象虽然可以对所有实例的属性跟方法共享,但是他的局限性也是很明显的,正是因为共享的特征,也导致原型存在最大的问题

[解决方案]:我们一般组合使用构造函数式和原型模式,在实际开发中,这种模式也应用最广泛

【egg】:

function Person(){

 }

 Person.prototype = {

  constructor:Person,

  name:"z3",

  age:20,

  job:"程序员",

  friend:['李四','王五'],

  sayName:function(){

   alert("我的名字");

  }

 }

 var p1 = new Person();

 var p2 = new Person();

 p1.friend.push("赵六");

 alert(p1.friend);

 alert(p2.friend);

 function Person(name,age,friend,job){

  this.name = name;

  this.age = age;

  this.friend = friend;

  this.job = job;

 }

 Person.prototype = {

  constructor:Person,

  sayName:function(){

   alert(this.name);

  }

 }

 var p1 = new Person("z3",20,['王五','赵六'],'技术总监');

 var p2 = new Person('z4',30,['哈哈哈','你好'],'boss');

 alert(p1.friend);

 alert(p2.friend);

上边的第一个例子,体现出了原型继承的劣势,解决方案是通过后边的构造函数 + 原型继承的形式的方式解决的;

相关文章

  • 原型对象存在的问题及解决方式

    一.原型对象虽然可以对所有实例的属性跟方法共享,但是他的局限性也是很明显的,正是因为共享的特征,也导致原型存在最大...

  • JS中的面向对象

    对象 创建对象的方式 使用工厂方式创建对象 使用构造函数创建对象 原型 容易出现的问题 继承 原型继承(基于原型链...

  • JavaScript---原型

    学习目标 使用 prototype 原型对象解决构造函数的问题 理解什么是原型(原型对象) 构造函数、protot...

  • 04_JS面向对象

    知识点 传统构造函数存在的问题 使用原型解决构造函数问题 原型相关的概念 原型的使用 使用原型的注意事项 __pr...

  • lesson 5 面向对象及原型链 2021-04-29

    课程标题 面向对象及原型链 课程目标 面向对象思想 原型及原型链 继承 知识点 面向对象思想 原型链的指向 new...

  • 面向对象的 js 之对象创建与继承

    创建对象 工厂模式 这样做就找不到原型关系了,没有解决对象识别问题。 构造函数 解决了对象识别问题,但多个对象实例...

  • JavaScript面向对象编程思想及对象的创建

    一、什么是面向对象? 找解决问题对象,如果对象存在,调用对象相关功能方法解决问题,如果对象不存在,自己封对象实现功...

  • 对象的创建方法以及优缺点

    1、原型模式 优点:能够解决创建多个对象的问题,兼容各个浏览器缺点:没有解决对象识别的问题,不能知道一个对象的类型...

  • 第一章

    1.1class类及继承 1.2构造函数及原型 创建对象的三种方式,且也有静态成员和实例成员 对象字面量:let ...

  • js 继承

    4种继承方式 原型式继承给原型对象添加属性原型替换子类的原型对象替换为父类的原型对象 原型链继承 借用构造函数继承...

网友评论

      本文标题:原型对象存在的问题及解决方式

      本文链接:https://www.haomeiwen.com/subject/cdtmmttx.html