`

Javascript 对象的三属性

 
阅读更多
先定义对象
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;
	}
}
var person = new Person('xiao', 21);

function Chinese(){ 
	this.sayHello=function(){ //覆盖Person的sayHello()方法
		document.writeln('你好! 我是' + this.name);
	}
}
Chinese.prototype=person; 
var chinese = new Chinese();


1.对象的prototype属性
var proto = Object.getPrototypeOf(chinese); //获取对象的prototype
document.writeln(proto===person);  //=>true 
document.writeln(person.isPrototypeOf(chinese)); //=>true 判断是否是对象的原型


2.对象的class 属性
对象的class属性是一个字符串,用来描述对象的类信息。对象的class属性可以通过对象的toString()获得。但是toString()经常被重写,必须间接地调用function.call方法
function classof(o){
	if(o===null) return null;
	if(o===undefined) return undefined;
	return  Object.prototype.toString.call(o).slice(8,-1);
}
document.writeln(classof(person)); //=>Object
document.writeln(classof(1)); //=>Number


3.对象的可扩展性
/*对象的可扩展性用以表示是否可以给对象添加新属性,所有内置对象和自定义对象都是显示可扩展的*/
var newperson = Object.preventExtensions(person); //将对象改为不可扩展的,返回修改后的对象
document.writeln(Object.isExtensible(person)); //=>false, 判断对象是否可扩展
person.high=170;
newperson.high=170;
document.writeln(person.high); //=>undefined 
document.writeln(newperson.high); //=>undefined 

//Object.seal()除了将对象设置为不可扩展的,还可将对象的自有属性设置为不可配置的
var newperson1 = Object.seal(person); //封闭person
document.writeln(Object.isSealed(person)); //=>true, person已被封闭

//Object.freeze() 除了将对象设为不可扩展的和将其属性设为不可配置的外,还将它所有的自有属性设置为只读的
var newperson2 = Object.freeze(person); //冻结person
document.writeln(Object.isFrozen(person)); //=>true, person已被冻结

* 注意:
1. 一旦将对象转为不可扩展的,就无法将其转为可扩展的了。seal(), freeze()同样也是不可逆的。
2. preventExtensions只影响到对象本身的可扩展性。如果给一个不可扩展对象的原型添加属性,则这个不可扩展对象将会继承新属性。
分享到:
评论

相关推荐

    javaScript对象.属性

    javaScript对象.属性

    JSP ASP HTML JavaScript 对象及属性大全

    SP对象 ASP属性 HTML对象及属性 JavaScript 对象及属性大全

    JavaScript[对象.属性]集锦

    JavaScript[对象.属性]集锦,大家了解下。

    javascript对象转换成json

    在JavaScript中,我们可以使用内置的`JSON.stringify()`方法将JavaScript对象转换为JSON字符串。 ### JSON.stringify()方法 `JSON.stringify()`是JavaScript中的全局函数,用于将JavaScript值转换为JSON字符串。它...

    javascript对象参考手册

    JavaScript对象是编程语言的核心组成部分,尤其在Web开发中扮演着至关重要的角色。"JavaScript对象参考手册"涵盖了这一主题的广泛内容,旨在为开发者提供全面、深入的理解和实用指南。手册分为20个章节,不仅涉及...

    JAVASCRIPT对象属性大全[参考].pdf

    以上内容仅是JavaScript对象属性的一个概述,实际的JavaScript对象和属性体系更为庞大和复杂,包括了更多如`form`、`window`、`event`、`math`等对象,以及更多的方法和属性,用于实现丰富的交互和功能。理解并熟练...

    检查控制台中的JavaScript对象方法和属性

    在本主题中,我们将深入探讨如何在控制台中检查JavaScript对象的方法和属性,这对于理解和解决问题至关重要。 首先,理解JavaScript对象的基本概念是至关重要的。对象是键值对的集合,这些键可以是字符串或符号,而...

    Javascript面向对象编程.

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

    深入浅出JavaScript对象模型

    简而言之,可以将JavaScript对象视为一个包含键值对的容器,这些键通常代表属性名称,而对应的值则可以是任何类型的数据。 #### 对象与属性的动态特性 JavaScript是一种解释型脚本语言,这使得它可以在运行时动态...

    js对象属性大全下载

    ### JavaScript对象属性详解 在深入探讨JavaScript对象属性之前,我们首先需要理解JavaScript是一种广泛应用于网页开发的编程语言,它能够使网页变得动态、交互性更强。JavaScript中的对象是其核心特性之一,几乎...

    JavaScript — 对象和属性的特性1

    本文将深入探讨JavaScript对象和属性的特性,包括`[[Prototype]]`、`[[Class]]`、`get`和`set`访问器、以及如何通过`Object.getOwnPropertyDescriptor()`、`Object.create()`和`Object.prototype.toString.call()`等...

    JavaScript对象笔记.rar

    什么是对象 简单点说,编程语言中的对象是对现实中事物的简化。例如,我们一个人就是一个对象,但是编程...在后面的JavaScript对象笔记中,记录了菜鸟在学习JavaScript对象的大多数资源,希望这些资源对你也有价值。

    JavaScript核心对象参考手册

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

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

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

    Javascript和Css属性对照

    对象属性是定义在 JavaScript 对象上的键值对,例如,`person.name` 就是 `person` 对象的一个属性,用来存储名字。DOM 属性则是通过 JavaScript 访问 HTML 或 XML 文档元素的特性,如 `document.getElementById('...

    04JavaScript对象相关内容总结.docx

    JavaScript对象是编程中的一种核心概念,它是一种复合数据类型,能够存储多个不同数据类型的属性。在JavaScript中,对象可以通过多种方式创建,其中一种常见的方法是使用`new`关键字和构造函数,例如`new Object()`...

Global site tag (gtag.js) - Google Analytics