`

javascript_面向对象

 
阅读更多

javascript对象创建、查询、属性枚举

 

var book=new Object();
book.title="Javascript:The definitive Guide";
book.chapter1=new Object();
book.chapter1.title="Introduction to JavaScript";
book.chapter1.pages=19;
book.chapter2={
    title:"Lexical Structure",
    pages:6
};
alert(book.title);

  构造函数:

 

  1. 由new运算符来调用
  2. 传递给它的是一个新创建的空对象的引用,将该引用作为关键字this的值,而且他还要对新创建的对象进行适当的初始化。
function Rectangel(w,h){
    this.width=w;
    this.heigth=h;
}
 

 

var rect1=new Rectangel(3,3);

 

 看出,首先通过new调用构造函数,初始化传进来的空对象,由this调用该对象进行初始化,该表达式的值就是被初始化的对象;若该方法有返回值,则this引用的对象被丢掉了。

方法 (method):通过对象调用的JavaScript函数,函数即使数值。

 

function Rectangle(w,h){
	this.weight=w;
	this.height=h;
}
function compute_area(){
	return this.weight*this.height;
}
var rec=new Rectangle(10,2);
rec.area=compute_area;
var a=rec.area();

 

 麻烦之处:调用方法前需要将该方法付给对象的一个属性。

 

改进版:function compute_area(){

	return this.weight*this.height;
}
function Rectangle(w,h){
	this.weight=w;
	this.height=h;
	this.area=compute_area;
}
var rec=new Rectangle(10,2);
var a=rec.area();
 

缺点:

构造函数在初始化之前需要对所有的属性进行设置,若是方法每个对象都保存方法的副本,空间成本很大。

改进:允许对象继承原型对象的属性。

原型对象和继承:该方法可以用来声明方法、常量以及其他能够被其他类的所有对象共享的属性。js对象都继承原型对象的属性,每个对象都有原型对象,原型对象爱你乖的所有属性是以它为原型的对象的属性。js中的所有函数都有prototype属性,他引用一个对象,原型对象初始化时是空的,但是在prototype定义的任何属性都会被该构造函数创建的所有对象继承。构造函数定义了对象的类,并初始化了类中状态变量的属性。 原型对象是存放方法和其他常量属性的理想场所。继承是在查询一个属性值值时自动发生的,属性并非从原型对象复制到新的对象的,他们只不过看起来是那些对象的属性。每个类都有一个原型对象,这个原型对象有一套属性。 在读取对象o的属性p时,会checko是否具有一个名为p的属性,如果没有则check o的原型对象是否有这个属性。

 

属性的继承只发生在读属性值,而在写属性值时不会发生。

 

 

面向对象的javascript

 

  1. 实例属性:在默认情况下,实例属性指的是js中的任何对象属性。但一般是指在对象中用构造器创建或初始化的属性。
  2. 实例方法:使用this来引用他们要操作的对象或实例。在js中,给类定义一个实例方法是通过把构造函数的原型对象的一个属性设置为函数值来实现的。所以由该构造函数创建的所有对象都会共享一个已继承的对函数的引用。
  3. 类属性:全局属性。Circle.PI=3.14 类属性和类关联,因此在js的名字空间中拥有一个逻辑位置,这样就不会被同名属性覆盖。因此采用上述方法来存放类属性

 4.类方法:类方法就是和类关联的方法,而不是和类实例关联的方法。要调用类方法,就必须使用类本身。

function Circle(radius){
	this.r=radius;
}
Circle.PI=3.14159;
function Circle_area(){return Circle.PI*this.r*this.r;}
Circle.prototype.area=Circle_area;
function Circle_max(a,b){
	if(a.r>b.r)
		return new Circle(a.r);
	else
		return new Circle(b.r);
}
Circle.max=Circle_max;
 
分享到:
评论

相关推荐

    Javascript 面向对象的JavaScript进阶

    ### JavaScript面向对象进阶知识点详解 #### 8.1 面向对象编程的基本特性 在探讨面向对象的JavaScript之前,我们首先需要了解面向对象编程(Object-Oriented Programming, OOP)的基本特性:封装性、抽象性、继承...

    Javascript面向对象编程.

    在提供的资源中,《代码之美》PDF文件可能包含了关于编程实践和代码风格的指导,而《Javascript面向对象编程》PPT可能更具体地阐述了JavaScript OOP的细节和示例。学习这些材料将有助于深入理解JavaScript的面向对象...

    面向对象JavaScript精要(英文原版pdf)

    ### 面向对象JavaScript精要 #### 一、书籍概览 本书《面向对象JavaScript精要》由Nicholas C. Zakas编写,是面向对象编程领域中的权威指南之一,尤其针对JavaScript这门语言。作者深入浅出地介绍了面向对象编程的...

    JavaScript面向对象编程指南.pdf

    JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在... 《JavaScript面向对象编程指南》着重介绍JavaScript在面向对象方面的特性,展示如何构建强健的、可维护的、功能强大的应用程序及程序库

    JavaScript面向对象编程指南

    《JavaScript面向对象编程指南》内容包括:JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码...

    JAVASCRIPT 面向对象编程精要

    ### JavaScript面向对象编程精要 #### 一、引言 JavaScript是一种灵活且强大的脚本语言,它虽然起源于一种简单的浏览器脚本语言,但随着时间的发展,JavaScript已经成为了一种功能全面的编程语言,尤其是在Web开发...

    javascript 经典面向对象设计

    ### JavaScript经典面向对象设计 #### 标题与描述解析 标题“JavaScript经典面向对象设计”指出了本书的主要内容是关于如何使用面向对象编程(OOP)原则和技术来编写高质量、可扩展且可重用的JavaScript应用程序及...

    JavaScript面向对象编程指南(第2版).rar

    JavaScript是一种广泛...通过深入学习这本《JavaScript面向对象编程指南(第2版)》,开发者不仅能掌握JavaScript的面向对象编程基础,还能了解到实际项目中如何有效地运用这些知识,提升编程技巧和解决问题的能力。

    JavaScript_DOM编程艺术第二版(中文)

    JavaScript DOM编程艺术第二版是一本深入探讨JavaScript与DOM(Document Object Model)交互的权威书籍,主要面向希望提升JavaScript客户端开发技能的程序员。DOM是Web页面的结构化表示,JavaScript通过DOM API可以...

    javascript面向对象编程

    面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的...

    面向对象JavaScript开发

    JavaScript,作为一种广泛应用于Web开发的动态脚本语言,最初被设计为简单的客户端脚本语言,但随着技术的发展,它已经发展出了丰富的面向对象编程(OOP)特性。面向对象JavaScript开发是现代Web开发中不可或缺的一...

    面向对象的_JavaScript_编程及其_Scope_处理

    ### 面向对象的JavaScript编程及其Scope处理 #### 一、JavaScript的面向对象特性 JavaScript作为一种弱类型的脚本语言,虽然本质上不是一种面向对象的语言,但我们可以通过巧妙地利用其特性来实现面向对象编程...

    javascript面向对象编程(中文).pdf

    ### JavaScript面向对象编程知识点概述 #### 一、现代JavaScript编程概览 - **JavaScript的演进**:自诞生以来,JavaScript经历了从一个简单的脚本语言到现今被广泛应用于构建复杂应用的强大编程语言的过程。它的...

    JavaScript 面向对象编程详细讲解文档

    JavaScript是一种动态类型的脚本语言,虽然它不像Java或C#那样拥有传统的类和实例机制,但它的面向对象编程能力仍然非常强大。JavaScript的核心在于对象、原型和隐式继承,这些都是理解其面向对象特性的重要概念。 ...

    JavaScript面向对象编程指南 pdf

    下面将详细探讨JavaScript面向对象编程的基本原理、特性以及实际应用。 1. **类与对象** - 在JavaScript中,对象是键值对的集合,可以通过字面量语法或构造函数创建。例如: ```javascript const person = { ...

Global site tag (gtag.js) - Google Analytics