javascript学习随笔(二)原型prototype

JavaScript三类方法:

1、类方法;2、对象方法;3、原型方法;注意三者异同

例:

 1 function People(name){
 2 this.name=name;
 3 //对象方法
 4 this.Introduce=function(){
 5 console.log(‘My Name Is ‘+this.name);
 6 }
 7 }
 8
 9 //类方法
10 People.Run=function(){
11 console.log(‘I Can Run‘);
12 }
13
14 //原型方法
15 People.prototype.IntroduceChinese=function(){
16 console.log(‘我的名字是‘+this.name);
17 }
18
19 //测试
20 var p=new People(‘Tom‘);
21
22 p.Introduce();
23 People.Run();
24 p.IntroduceChinese();

JavaScript对象类型原型引用,切记将某对象的原型赋给某对象原型,这不是继承关系,而是将克隆,且存在冲突函数或属性时,保留自己的函数和属性

例1、

 1 function  BaseClass(){
 2 this.showMsg=function(){
 3 alert(‘baseClass::showMsg‘);
 4 };
 5 }
 6
 7 function  ExtendClass(){
 8
 9 }
10
11 ExtendClass.prototype=new BaseClass();
12
13 var extend=new ExtendClass();
14 extend.showMsg();//弹出baseClass::showMsg

例2、

 1 function  BaseClass(){
 2 this.showMsg=function(){
 3 alert(‘bassClass::showMsg‘);
 4 };
 5 }
 6
 7 function  ExtendClass(){
 8 this.showMsg=function(){
 9 alert(‘extendClass::showMsg‘);
10 };
11 }
12
13 ExtendClass.prototype=new BassClass();
14
15 var extend=new ExtendClass();
16 extend.showMsg();//弹出extendClass::showMsg

函数运行时会先去本体的函数中去找,如果找到则运行,找不到则去prototype中寻找函数。或者可以理解为prototype不会克隆同名函数.

时间: 2024-10-29 04:39:55

javascript学习随笔(二)原型prototype的相关文章

javascript 学习小结 (二) by FungLeo

javascript 学习小结 (二) by FungLeo 前言 前面写过一个学习小结javascript 学习小结 JS装逼技巧(一) by FungLeo 那篇博文总结的东西还是比较多的. 但是JS有很多的内容,都是很有用的知识点,不可能一下子记住.因此,我的学习小结的会一直更新. 因为学习进度的不同,可能每篇博文的长短也不一样,有的学的东西多,就长点. 查询某个字符串在某个数组中的索引值 笨方法 我的基础比较差,所以很多东西是记不住的.因此,我在需要这样做的时候,我写了如下代码 var

Java程序猿的JavaScript学习笔记(5——prototype和Object内置方法)

计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序猿的JavaScript学习笔记(5--prototype) Java程序猿的JavaScript学习笔记(6--面向对象模拟) Java程

javascript学习:闭包和prototype原型使用基础

闭包 function Person(name) { this.Username = name; var Userage = 18; //通过这种方法可以模拟私有成员 //类似于private成员 this.setAge = function (age) { Userage = age; } //类似于public成员 this.getAge = function () { return Userage; } } var p1 = new Person("huahuah"); p1.s

【Javascript 拾遗之二】prototype 原型

在开发中, 使用到一些Javascript框架, 如Jquery, Ext-js, Jquery-UI, EasyUI等,通常会看到一些开源代码中有prototype的身影.那么prototype究竟是什么呢?在oo前端开发中到底哪些应用呢?从软件工程的角度而言,能解决什么问题?接下来我们就一起来讨论一下prototype关键字在Javascript语言中的神奇之处.   prototype 原型 1.定义 Javascript中有两种容易混淆的类型, function 和 object, 有很

JavaScript学习总结(二)——闭包、IIFE、apply、函数与对象

目录 一.闭包(Closure) 1.1.闭包相关的问题 1.2.理解闭包 二.对象 2.1.对象常量(字面量) 2.2.取值 2.3.枚举(遍历) 2.4.更新与添加 2.5.对象的原型 2.6.删除 2.7.封装 三.函数 3.1.参数对象 (arguments) 3.2.构造函数 3.3.函数调用 3.3.1.call 3.3.2.apply 3.3.3.caller 3.3.4.Callee 3.5.立即执行函数表达式 (IIFE) 3.5.1.匿名函数与匿名对象 3.5.2.函数与函数

前端乱煮之javascript学习笔记二

1 javascript的隐式转换规则: 若有布尔类型,则将它转换为数值进行比较. 若有NaN,一律返回false 若是字符串,则分为三种情况:对方为字符串就直接比较,对方为数值,则将字符串转化为数值,若对方为对象,则将对象用toString()的方法进行转换,然后再比较.最后,若是其他,则一律返回false. 若是数字,如果对方是对象,用valueOf()进行比较,其余一律返回false null 和defined不会进行类型转换,但是二者相等. 2 javascript中的break和con

JavaScript学习3:原型和继承

原型 我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个对象,它的用途是包括能够由特定类型的全部实例共享的属性和方法.逻辑上能够这么理解:prototype是通过调用构造函数而创建的那个对象的原型对象. 为什么要引入原型的概念呢?使用原型的目的.也是他的优点是能够让全部的对象实例共享它所包括的属性和方法.换句话说,就是不必再构造函数中定义对象信息,而是能够直接将这些信息加入到原型中. 详细怎么用,我们来看代码实例: <span style="font-size:18p

javascript学习笔记11(原型链)

<script type="text/javascript">    /**     * js实现继承的第一种方式是基于原型链的方式     */    function Parent() {        this.pv = "parent";    }    Parent.prototype.pp = "ok";    Parent.prototype.showParentValue = function() {        a

javascript构造函数类和原型prototype定义的属性和方法的区别

1.把方法写在原型中比写在构造函数中消耗的内存更小,因为在内存中一个类的原型只有一个,写在原型中的行为可以被所有实例共享,实例化的时候并不会在实例的内存中再复制一份而写在类中的方法,实例化的时候会在每个实例中再复制一份,所以消耗的内存更高所以没有特殊原因,我们一般把属性写到类中,而行为写到原型中2.构造函数中定义的属性和方法要比原型中定义的属性和方法的优先级高,如果定义了同名称的属性和方法,构造函数中的将会覆盖原型中的代码如下: <!DOCTYPE html> <html> <