`

Javascript 创建对象的四种方法,类的三种属性,三种方法

阅读更多
1. 使用Jeson创建新对象
var point={x:1,y:2};
var point2={x:point.x, y:point.y+2};
var person={'the name':'peter', 'the age': '23'};
document.write(point2.y);
document.write(person['the name']);


Jeson表达式的每次运算都创建并初始化一个新对象。也就是说,如果在一个重复
调用的函数中的循环体内使用了Jeson表达式,它将创建很多新对象.


2. 使用 new 创建对象
function Person(name,age){ //声明类和类的构造函数
	this.name=name; //类的属性
	this.age=age;
	this.sayHello=function(){ //类的方法
		document.writeln("Hello I'm " + this.name);
	}
	this.setName=function(name){
		this.name=name;
	}
	this.setAge=function(age){
		this.age=age;
	}
}

Person.Max_Age=120; //类的静态属性

Person.cry=function(){ //类的静态方法
	document.writeln('www...'); //所有Person的哭声是一样的
}

Person.prototype.sex='male'; //类的原型属性,相当于把sex作为非静态属性拷贝到类的定义中

Person.prototype.run=function(){ //类的原型方法,相当于把run方法作为非静态方法拷贝到类的定义中
	document.writeln('running...');
}

var tom = new Person('tom',23); 
document.writeln(tom.age); //访问类的属性
document.writeln(Person.Max_Age); //访问类的静态属性
document.writeln(tom.sex); //访问类的原型属性
tom.sayHello(); //访问类的方法
tom.run(); //访问类的原型方法
Person.cry(); //访问类的静态方法



3.使用prototype创建对象
function Chinese(){ 
	this.sayHello=function(){ //覆盖Person的sayHello()方法
		document.writeln('你好! 我是' + this.name);
	}
}
//Chinese继承(准确的说是拷贝,因为Person也可以拷贝Chinese的属性和方法)了Person的属性和方法
Chinese.prototype=new Person();
//或者Chinese.prototype=new Person('xiao',21);  
var xiaomin = new Chinese();
xiaomin.setName('xiaomin');
xiaomin.setAge(21);
document.writeln(xiaomin.age); //访问父类的属性
//document.writeln(Chinese.Max_Age); //“不能”访问父类的静态属性
document.writeln(xiaomin.sex); //访问父类的原型属性
xiaomin.sayHello(); //访问父类的方法
//Chinese.cry(); //“不能”访问父类的静态方法
xiaomin.run(); //访问父类的原型方法
document.writeln(Chinese.prototype.name);//=>tom 访问prototype中的变量,原型中的变量没有改变。



4.Object.create方法创建对象
var peter = Object.create(tom);
document.writeln(peter.age); //访问类的属性
document.writeln(peter.sex); //访问类的原型属性
peter.sayHello(); //访问类的方法
peter.run(); //访问类的原型方法
peter.setAge(18);
document.writeln(peter.age); //peter的属性发生了改变
document.writeln(tom.age); //tom的属性没有改变
peter.weight=120; //给peter增加新的属性
document.writeln(peter.weight); //peter新增了属性
document.writeln(tom.weight); //tom没有新增属性
tom.high=180; //给tom增加新的属性
document.writeln(peter.high); //peter的high=180
document.writeln(tom.high); //tom的的high=180


以上实验说明Object.create创建的对象和prototype创建的对象比较类似,有拷贝/继承的味道


5. 遍历类的属性和方法
//遍历对象的非静态属性和方法,以及原型属性和方法
var tom = new Person('tom',23);
var p='';
for(p in xiaomin){ 
	document.writeln(p+'='+tom[p]);
} 
//遍历类的静态属性和方法
var p='';
for(p in Person){ 
	document.writeln(p+'='+tom[p]); //可以获取对象的属性名,但无法获取它的值
} 

分享到:
评论

相关推荐

    javascript创建对象的方式(二)

    这篇博客“javascript创建对象的方式(二)”可能详细介绍了在JavaScript中除了最基础的字面量语法之外的其他创建对象的方法。这里我们将深入探讨几种常见的创建对象的方式。 1. **构造函数**: JavaScript中的...

    Javascript创建自定义对象 创建Object实例添加属性和方法

    如下所示: 代码如下: var person...上面的例子创建了一个名为person的对象,并为它添加了三个属性(name、age和job)和一个方法(sayName())。其中,sayName()方法用于显示this.name()的值。早期的JavaScript开发人员

    javascript创建对象的方式(三)

    JavaScript 提供了多种创建对象的方式,每种都有其适用场景。字面量方式适用于简单对象,构造函数和原型对象适用于复杂且需要复用的情况,`Object.create()` 适用于创建新对象并指定原型,而 ES6 类则提供了面向对象...

    JavaScript学习之二 — JavaScript创建对象的8种方式

    本文将深入探讨JavaScript创建对象的8种常见方式,帮助你更好地理解和掌握这门动态类型的编程语言。 1. **字面量(Literal)方式** 这是最简单直接的创建对象的方式,通过大括号{}来定义一个对象,然后在内部用...

    javascript如何创建对象

    JavaScript创建对象的方法主要有以下几种: 一、直接创建 直接创建是通过new Object()来创建一个新的空对象,然后逐步给这个对象添加属性和方法。例如,创建一个名为person1的对象,并添加name、gender属性,以及一...

    javascript动态创建对象的属性详解.docx

    通过本文的学习,我们不仅了解了JavaScript中动态创建对象属性的基本方法,还深入了解了`Object.defineProperty()` 的高级用法。这些技能对于任何希望提高JavaScript编程水平的开发者来说都是必不可少的。希望本文能...

    javascript创建对象的方式(一)

    这篇博文主要探讨了JavaScript创建对象的几种常见方式,这对于理解和掌握JavaScript面向对象编程至关重要。在实际开发中,了解并灵活运用这些方法能够提高代码的可读性和可维护性。下面,我们将详细讲解标题中提到的...

    javascript中创建对象的三种常用方法

    本文将详细阐述三种常用的创建对象的方法:字面量语法、构造函数和原型。这些方法各有特点,适用于不同的场景,理解并熟练掌握它们对JavaScript开发者至关重要。 **方法一:字面量语法** 字面量语法是最直接和简洁...

    JavaScript对象创建的九种方式

    工厂模式是一种封装创建对象过程的方法。通过函数来创建对象,将创建逻辑封装在函数内部,返回新创建的对象。这样可以确保每次调用函数时都得到一个新的对象。 4. **构造函数模式**: 构造函数是一种特殊函数,用于...

    javascript创建对象的方式(四)

    本文将深入探讨四种主要的JavaScript创建对象的方法,帮助你更好地理解和运用这些技巧。 1. **字面量语法(Literal Notation)** 字面量语法是最简单直接的创建对象的方式。它允许你在一行代码中创建一个对象,...

    在javascript中创建对象的各种模式解析

    在JavaScript中创建对象主要涉及以下几种模式: 1. 工厂模式 工厂模式是最早期的对象创建方式之一,它通过一个函数来创建对象,并返回新创建的对象。这种方法的核心是利用函数封装创建对象的细节,然后通过返回值来...

    一、JavaScript 创建对象

    JavaScript提供了多种创建对象的方法,包括字面量语法、构造函数、对象原型、工厂函数、模块模式以及近年来引入的类(Class)语法。这篇博客将深入探讨这些方法,帮助你更好地理解和掌握JavaScript中的对象创建。 ...

    在js中创建类和对象

    工厂方法是一种创建对象的模式,通过一个函数来创建具有特定属性和行为的对象。在JavaScript中,我们可以定义一个函数,如`createFruit`,它内部创建一个新的对象并返回。虽然简洁,但这种方法没有明显的类型标识,...

    javascript对象创建

    JavaScript的类(Class)概念是ES6引入的,它提供了一种更面向对象的语法糖,使得代码更易读。类的声明和实例化如下所示: ```javascript class Person { constructor(name, age) { this.name = name; this.age ...

    javascript创建对象的3种方法

    总结来说,JavaScript创建对象的方法有多种,每种都有其适用的场景。JSON对象适合临时使用,`Object`实例适合简单场景,而构造函数及原型链则更适合构建复杂的、可复用的对象模型。在实际开发中,应根据项目需求选择...

    Javascript面向对象编程.

    在JavaScript中,面向对象主要通过以下三种方式实现: 1. **构造函数(Constructor)**:构造函数是一种特殊的函数,用于创建和初始化对象。我们可以通过`new`关键字来调用构造函数,创建一个新的对象实例。例如: ...

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

    - **第三章:JavaScript中的类和对象**:详细介绍如何使用JavaScript创建类和对象。 - **第四章:继承**:探讨JavaScript中实现继承的不同方式。 - **第五章:封装和私有性**:讲解如何在JavaScript中实现封装以及...

    JavaScript核心对象参考手册

    2. **对象创建与原型Prototype**: JavaScript使用`new`关键字创建对象实例,原型链允许对象间共享属性和方法,`__proto__`或`prototype`属性是理解这一机制的关键。 3. **函数对象Function**: 在JavaScript中,函数...

    Javascript面向对象编程

    利用`function`作为类的定义、`new`操作符创建对象、以及`this`和`prototype`来模拟类的特性和行为,可以有效地提高代码的可读性和可维护性。通过深入理解这些概念,开发者可以更好地利用JavaScript的强大功能来构建...

    浅析创建javascript对象的方法_.docx

    在JavaScript中,创建对象有多种方法,这里主要讨论三种常见的模式:工厂模式、构造函数模式和原型模式。每种模式都有其特点和适用场景,但同时也存在一定的局限性。 首先,我们来看工厂模式。这种模式通过一个函数...

Global site tag (gtag.js) - Google Analytics