JS原型

作者: 凌雲木 | 来源:发表于2017-07-20 09:29 被阅读21次

一直没专门看过js的原型是啥,一直用以往的面向对象的c#语言去使用理解它,今天发现还是稍许不同。

//构造函数声明对象

function Car(name) {

  this.name = name;//name属性

  this.istrue = function () {//istrue方法

  return 'true';

  }

}

//使用new操作符来调用构造函数,并返回对象实例。

//实例one

var one = new Car("Lamborghini");

//实例two

var two = new Car("Wuling Sunshine");

//实例three

var three = new Car("Lamborghini");

//对象Car中的istrue方法,必定返回true,可是Car对象实例化形成的对象one和two,这两个的istrue

//方法,虽说返回值都是true,但在对象one和two中istrue方法的本质是不一样的

alert(one.istrue == two.istrue);//false

alert(one == three);//false,即使one和three在实例化时传的参数一样,本质上还是两个对象

alert(one.name == three.name);//true

上面代码中,一个构造函数Car生成了的对象实例间不能共享方法,也就是说,每当你使用new来调用构造函数实例化一个对象时,

都会创建一个istrue方法。这既没有必要,浪费性能资源,因为所有istrue方法的结果都一样,返回true,完全可以在实例化对象之间共享。

所以,Javascript构造函数的缺点就是:同一个构造函数的对象实例之间无法共享方法

若想在对象实例间共享方法,可以把istrue方法添加在Car的原型对象上,如下:

Car.prototype.istrue = function () {

return "true";

}

//再次判断

console.log(one.istrue);

console.log(two.istrue);

console.log(one.istrue==two.istrue);//返回true

3未完待续

相关文章

  • 廖雪峰JS小记

    (function(){})() 原型,原型链 浅谈Js原型的理解JS 原型与原型链终极详解 对象 对象:一种无序...

  • Javascript(三)之原型继承理解

    进阶路线 3 原型继承 3.1 优秀文章 最详尽的 JS 原型与原型链终极详解 一 最详尽的 JS 原型与原型链终...

  • JS的__proto__和prototype

    最近在回顾JS的原型和原型链的知识,熟悉JS的同学都知道JS的继承是靠原型链实现的,那跟原型链相关的属性__pro...

  • 我的投稿

    js原型

  • JS原型

    最近一直在理解JS的原型------《你不知道的JS》--------《JS设计模式》 里面都讲JS的原型运作方式...

  • js基础(三)

    js基础 原型链和原型对象 ... ... js没有继承原型对象prototype通常用来添加公共的属性或行为且只...

  • 发现•分享—2019-01-17

    文章 JS JS 异步编程六种方案 JS基础—原型对象的那些事(一) JS基础—原型对象的那些事(二) CSS 综...

  • 前端资料

    ES6新数据类型 Symbol . js变量提升函数提升 js this js 原型及原型链理解 new做了什么 ...

  • javaScript中的面向对象思想之原型

    二、js的原型1、原型的概念原型是构造函数在js代码编译阶段,由系统为我们创建出来的一个对象;原型原型可以给系统构...

  • 前端开发必须知道的JS(一) 原型和继承(转载)

    前端开发必须知道的JS(一) 原型和继承 原型和闭包是Js语言的难点,此文主要讲原型及原型实现的继承,在(二)中会...

网友评论

      本文标题:JS原型

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