原型讲解二:原型是干什么用的

前面说了这么多的原型的概念,那么原型用在哪里呢?

之前说过,直接在构造函数外面定义一个函数方法,势必会造成全局的变量污染,那么怎么避免这个问题呢?那么就要涉及到在原型上面定义一个方法了:

范例:

function Person(name,age,gender){

this.name=name;

this.age=age;

this.say=function(“我是”+this.name);

}

这是一个简单的构造函数,那么是怎么改进的呢?

改进1:为了防止每次建立一个对象,对象里包含一个say()函数方法

在构造函数的外面添加了一个say()含数,但是造成了全局的变量污染。

该进2:使用原型的方法

this.say方法就可以不定义了

看看这里的定义:

Person.prototype.say=function(){

alert(“我是”+this.name);

}

这样就完美的解决了上面构造函数外面直接定义函数方法从而污染全局变量的问题。

再补充几个专业的术语(其实就是为了让读者看不懂,从而达到吹NB的效果,国内学者把这个学的淋漓尽致了,呵呵了)

什么叫做实例化:

例如 var p=new Person();

就是用new创建了一个对象,该对象拥有构造函数的属性和方法,有木有感觉构造函数像一个模板呢?,结构是不变的,唯一变的就是实参的变化

更专业的叫法:p是Person()这个构造函数的一个实例

时间: 2024-11-13 09:11:18

原型讲解二:原型是干什么用的的相关文章

JavaScript继承基础讲解,原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承

说好的讲解JavaScript继承,可是迟迟到现在讲解.废话不多说,直接进入正题. 既然你想了解继承,证明你对JavaScript面向对象已经有一定的了解,如还有什么不理解的可以参考<面向对象JS基础讲解,工厂模式.构造函数模式.原型模式.混合模式.动态原型模式>,接下来讲一般通过那些方法完成JavaScript的继承. 原型链 JavaScript中实现继承最简单的方式就是使用原型链,将子类型的原型指向父类型的实例即可,即“子类型.prototype = new 父类型();”,实现方法如下

justinmind夜话:数据母板系列视频教程之原型设计二十一条军规

案例描述:使用数据母板实现原型设计二十一条军规 知识点: 数据母板 效果图: 本站在线效果预览:(原型文件) 原型下载地址:数据母板原型设计二十一条军规 .vp  数据母板原型设计二十一条军规.html 在线视频: 实现步骤:

程矢Axure夜话:中继器系列视频教程之中继器原型设计二十一条军规

程矢Axure夜话:中继器系列视频教程之中继器原型设计二十一条军规 案例描述:中继器实现原型设计二十一条军规 知识点: 中继器分页 效果图: 在线效果预览: AxShare在线效果预览: 原型下载地址:中继器原型设计二十一条军规 .rp 在线视频: 实现步骤: 更新中-..

牛腩新闻系统(二)——原型图、数据库文档

牛腩新闻系统(二)--原型图.数据库文档 之前建好数据库,进行外键的设置和原型图的构件,常常听有经验的软件设计师说,一 个项目经理,如果计划花四个月完成一个软件,那么研究数据可和原型图需要花上两个 月左右的时间,设计好了数据库和原型图,相当于完成了70%左右,由此可知数据设计和 原型图设计的重要性. 一.数据库文档 1.选中newsId 左边三角型,拖动着指针指向右边的news 表: 成功之后效果如下: 2.将时间comment 表和news表中的GreatTime 中属性直接改成获取当前时间:

从零开始学 Web 之 JS 高级(二)原型链,原型的继承

大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http://www.cnblogs.com/lvonve/ CSDN:https://blog.csdn.net/lvonve/ 在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 一.原型链 原型链

史上最清晰的JavaScript的原型讲解

一说起JavaScript就要谈的几个问题,原型就是其中的一个.说了句大话,史上最清晰.本来是想按照大纲式的行文写一下,但写到后边感觉其实就一个概念,没有什么条理性,所以下面就简单按照概念解释的模式谈下这个问题. 1.JavaScript的原型是什么? 原型,首先他是个对象.和在以对象为核心的JavaScript这门语言中的其他普通对象来说一样,只不过他的角色有点特殊.但首先要明白他就是一个对象,是一个无序的属性和值的序列对. 2.谁会具有原型这个对象? 所有的对象(包括函数这个对象)在默认的情

面向对象之笔记二——————原型与继承

原型与继承 原型 为什么需要原型? 构造器创建对象的时候, 实际上会有成员重复 如果使用 构造器 this.方法名 = function .... 方式创建对象. 那么每一个对象对应的方法就会重复 function Person( name ) { this.name = name; this.sayHello = function() { console.log( '你好,我是 ' + this.name ); }; } var p1 = new Person( 'Hello' ); var

javascript中的原型和原型链(二)

原型(prototype) 函数的 prototype 属性(图) 每个函数都有一个prototype属性,它默认指向一个Object空对象(即称为:原型对象) 原型对象中有一个属性constructor,它指向函数对象 给原型对象添加属性(一般都是添加方法) 作用:函数的所有实例对象自动拥有原型中的属性(方法) 显式原型与隐式原型 每个函数 function 都有一个prototype属性,即 显式原型 每个实例对象都有一个__proto__,可称为隐式原型 实例对象的隐式原型的值 === 其

简单原型语法和原型动态性

一.简单原型语法 function Student(){ } Student.prototype={ name:'yjj', age:15, myName:function (){ alert(this.name); } } //简单原型写法本质上完全重写了默认的prototype对象,因此construtor属性也就变成了新对象的constructor属性,指向了object构造函数,不再指向Student函数. //通过constructor已经无法确定对象类型了 var student =