首页 > 语言 > JavaScript > 正文

js中对象与对象创建方法的各种方法

2024-05-06 15:42:05
字体:
来源:转载
供稿:网友

前言

不管是哪门语言,千变万化不离其宗,深入理解其本质,方能应用自如。对应到js,闭包,原型,函数,对象等是需要花费大功夫思考、理解的。

这一次我们来说一说在JavaScript中经常会用到的一个复杂基本类型,对象,先从对象的属性讲起,再讲对象的创建方法,基本涵盖了创建对象的各种方法,大家一起学习呀~

一、对象

要掌握对象的使用及继承,首先当然需要先理解它,接下来,将会对对象的属性类型进行一个整理

    1、什么是对象

    对象其实是无序属性的集合,其属性可以包含基本值,对象或者函数,比如像下面这个例子就是一个person对象啦

var person = { name: "NIcholas", age: 29, sayName: function() { console.log(this.name); }}

    从上面的例子我们可以看到,对象可以是由属性和其相应的值构成,对象中可以包含函数,也可以包含其它对象

    2、属性类型

    在JavaScript中,其实有两种属性,包括数据属性和访问器属性

    (1)数据属性

    数据属性包含一个数据值的位置,在这个位置可以读取和写入值,一般来说,有4个描述其行为的特性:

    a、[[Configurable]]:表示能否通过delete删除属性从而重新定义属性,默认值为true

    b、[[Enumerable]]:表示能否通过for-in循环返回属性,默认值为true

    c、[[Writable]]:表示能否修改属性的值,默认值为true

    d、[[Value]]:包含这个属性的数据值,默认值为undefined

    一般来说,数据属性都有自己的默认值,那么如果我们要修改数据属性默认的特性,应该怎么办呢?这个时候就需要用到Object,defineProperty()方法啦,这个方法接收三个参数:属性所在的对象,属性的名字和一个描述对象,来看下面的例子

var person = {};Object.defineProperty(person, "name", { writable: false, value: "Nicholas"});console.log(person.name); // Nicholas// 重新赋值person.name = "Greg";console.log(person.name); // Nicholas

    从上面的例子我们可以看到,因为设置了person对象的name属性为不可修改,因此无论你在后面怎么修改person的name属性的值,name属性的值都不会发生改变

    (2)访问器属性

    访问器属性不包含数据值,它们包含一对儿getter和setter函数,在读取访问器属性时,会调用getter函数,这个函数负责返回有效的值,在写入访问器属性时,会调用setter函数并传入新值,这个函数负责决定如何处理数据,访问器属性有以下4个特性

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选