1.prototype属性在js中模拟了父类的角色,在js中体现面向对象的思想,prototype属性是非常关键。
2.你现在就要搞清什么事类变量、类方法、实例变量、实例方法。
3.现在你要理解this是指向类实例对象,prototype呢?
4.new操作符实例化一个对象的过程,js首先创建一个空的对象,然后这个对象被new后面的方法this关键字引用,然后方法对象通过操作符this,就给这个新创建的对象相应的赋予了属性。
function Person(name,age){
this.name = name;
this.age =age;
}
var per = new Person("dexter",23)
5.不知道了怎么说了,我也是看这写例子就明白了什么prototype的
例子一
function Person(name,sex)
{this.name=name;this.sex=sex;}
Person.prototype.age=12;
Person.prototype.print=function(){alert(this.name+"_"+this.sex+"_"+this.age);};
var p1 = new Person("name1","male");
var p2=new Person("name2","male");
p1.print();//name1_male_12
p2.print();//name2_male_12
Person.prototype.age=18;
p1.print();//name1_male_18
p2.print();//name2_male_18
这里的关键就是属性age好好感受体会一下
prototype对象模拟了一个超类的效果,你会明白什么是超类的。
实例二
function Person(name,sex){this.name=name;this.sex=sex;}
Person.prototype.age=12;
Person.ptototype.print=function(){alert(this.name+"_"+this.sex+"_"+this.age);}
var p1=new Person("name1","male"); //p1的age属性继承了Person类的父类(即prototype对象)
var p2=new Person("name2","male");
p1.print();//name1_male_12
p2.print();//name2_male_12
p1.age=34 //改变p1实例的age属性
p1.print();//name1_male_34
p2.print();//name2_male_12
Person.prototype.age=22;//改变Person类的超类的age属性
p1.print();//name1_male_34(p1的age属性没有随着prototype属性的改变而改变)
p2.print();//name2_male_22(p2的age属性发生了改变)
p1.print()=function(){alert("i am p1")};
p1.print();//I am p1(p1的方法发生了改变)
p2.print();//name2_male_22(p2的方法并没有改变)
Person.prototype.print=function(){alert("new print method")};//改变超类的方法
p1.print();//I am p1(p1的print方法仍旧是自己的方法 )
p2.print();//newprint method(p2的print方法随着超类的方法改变而改变)
js中对象的prototype属性相当于java中的static变量,可以被这个类下的所有对象公用。
分享到:
相关推荐
在JavaScript面向对象的上下文中,我们可以创建专门处理Canvas绘图的类,封装复杂的绘图逻辑: ```javascript class Circle { constructor(x, y, radius) { this.x = x; this.y = y; this.radius = radius; } ...
在提供的资源中,《代码之美》PDF文件可能包含了关于编程实践和代码风格的指导,而《Javascript面向对象编程》PPT可能更具体地阐述了JavaScript OOP的细节和示例。学习这些材料将有助于深入理解JavaScript的面向对象...
在本文中,我们将介绍JavaScript面向对象编程中的经典案例,包括对象、类、继承、原型链和闭包等概念。 一、对象和类 在JavaScript中,对象是指一个实体,可以拥有自己的属性和方法。对象可以使用工厂函数或构造...
Zakas编写,是面向对象编程领域中的权威指南之一,尤其针对JavaScript这门语言。作者深入浅出地介绍了面向对象编程的基本原理以及如何将这些原理应用于JavaScript中。 #### 二、面向对象编程基础 面向对象编程...
"javascript面向对象框架"这一主题涵盖了JavaScript中实现面向对象编程的框架,特别是Prototype和MooTools这两个优秀的库。 Prototype是JavaScript的一个开源库,它扩展了JavaScript的基本对象和函数,提供了强大的...
### JavaScript面向对象进阶知识点详解 #### 8.1 面向对象编程的基本特性 在探讨面向对象的JavaScript之前,我们首先需要了解面向对象编程(Object-Oriented Programming, OOP)的基本特性:封装性、抽象性、继承...
### JavaScript面向对象编程精要 #### 一、引言 JavaScript是一种灵活且强大的脚本语言,它虽然起源于一种简单的浏览器脚本语言,但随着时间的发展,JavaScript已经成为了一种功能全面的编程语言,尤其是在Web开发...
JavaScript是一种广泛应用于Web开发的动态编程语言,尤其以其强大的面向对象特性而闻名。面向对象编程(Object-Oriented ...通过阅读`prototype.js`这样的示例代码,可以帮助加深对JavaScript面向对象编程的理解。
JavaScript面向对象编程是指在JavaScript语言中使用面向对象的方法来编写程序。JavaScript是一种高级的、解释型的编程语言,它支持面向对象的编程范式,允许开发者创建对象、使用继承和多态等面向对象的特性。以下是...
JavaScript,作为一种广泛应用于Web开发的动态脚本语言,最初被设计为简单的客户端脚本语言,但随着技术的发展,它已经发展出了丰富的面向对象编程(OOP)特性。面向对象JavaScript开发是现代Web开发中不可或缺的一...
JavaScript是一种动态类型的脚本语言,虽然它不像Java或C#那样拥有传统的类和实例机制,但它的面向对象编程能力仍然非常强大。JavaScript的核心在于对象、原型和隐式继承,这些都是理解其面向对象特性的重要概念。 ...
JavaScript是一种广泛...通过深入学习这本《JavaScript面向对象编程指南(第2版)》,开发者不仅能掌握JavaScript的面向对象编程基础,还能了解到实际项目中如何有效地运用这些知识,提升编程技巧和解决问题的能力。
JavaScript是一种广泛应用于Web开发的动态编程语言,尤其在构建交互式网页和富互联网应用...《JavaScript面向对象编程指南》这本书将帮助你进一步探索这个主题,通过实例和详细的解释,提升你的JavaScript编程技能。
JavaScript中对象的prototype属性,可以返回对象类型原型的引用。这是一个相当拗口的解释,要理解它,先要正确理解对象类型(Type)以及原型(prototype)的概念。 1 什么是prototype JavaScript中对象的prototype属性,...
JavaScript面向对象编程是一种基于原型(Prototype)的编程范式,它是动态类型语言,允许开发者创建具有复杂特性的对象。在JavaScript中,面向对象主要通过构造函数、原型链和闭包来实现。以下是对这一主题的详细...
### JavaScript面向对象精要 #### 一、概述 《JavaScript面向对象精要》是一本深入讲解JavaScript面向对象编程原理的专业书籍。本书由知名的前端开发者Nicholas C. Zakas撰写,全面介绍了JavaScript作为一种动态...
### JavaScript面向对象编程详解 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,在Web开发领域占据着举足轻重的地位。尽管JavaScript本质上是一种基于原型的语言,但它也支持面向对象编程的一些特性,使得...
下面将详细探讨JavaScript面向对象编程的基本原理、特性以及实际应用。 1. **类与对象** - 在JavaScript中,对象是键值对的集合,可以通过字面量语法或构造函数创建。例如: ```javascript const person = { ...