JS对象

JS对象的概念

JS对象是一系列命名变量、函数的集合。对象中的命名变量称为属性,函数称为方法。如同java一样,对象对属性和方法的访问,通过点号"."。

JS作为基于对象的脚本语言,提供了大量的内置对象供使用。还提供了如下常用的类:

Array:数组类

Date:日期类

Error:错误类

Function:函数类

Math:数学类

Number:数值类

Object:对象类

String:字符串类

JS虽然不要求使用对象,甚至可以不使用函数,只用顺序的代码流就可以实现功能。但是为了更好的复用和可读性,还是使用对象和函数为好。

JS中,每个函数都对应着一个对象。该对象既是Function类的实例,也是Object类的实例。JS不允许指定类之间的继承关系,开发者定义的类之间也没有父子关系。但是,所有的类都可以认为是Object的子类。

对象和关联数组

JS的对象,本质上是关联数组,就像是Java中的Map。对象中的数据是一对对的key-value。当value是函数时,就是对象的方法。否则就是属性。或者,可以认为JS对象中,都是属性。

由于本质上是数组,所以访问JS属性时,除了使用"对象.属性名",也可以使用 对象[属性名] 的方式。甚至在一些时候,必须使用中括号方式。比如:

<script type="text/javascript">
    function Person(name,age)
    {
        this.name = name;
        this.age = age;
        this.info = function()
        {
            alert("info method");
        }
    }
    var p = new Person('wargon',24);
    for( propName in p){
        document.writeln('p对象的'+propName+'属性值为:'+p[propName]+'<br/>');
    }
</script>

上面的JS代码中,访问p对象的属性只能使用p[propName]这种方式。如果使用p.propName,相当于访问p对象的propName属性,此时propName不再认为是一个变量了。但是p并没有名为propName的属性,所以会报错。

prototype:

prototype属性是JS中所有类的具有的类属性。通过其可以为java中的类(也就是函数)动态增加属性(包括方法)。

比如:

Person.prototype.walk()=function(){...}    //为Person类增加了一个walk()方法

实际上prototype代表着类的原型对象。默认情况下,JS中类的prototype的属性值是一个Object类的对象。可以借助prototype来实现继承。

function Student(grade){
    this.grade = grade;
}

Student.prototype=new Person('wang',25);

这时,Student就拥有了Person类中的属性和方法。这时,Student类的实例,也是Person类的实例。

需要注意的是,当使用了prototype进行类的拓展时,原本单纯的类就不存在了,新的类覆盖了它。功能增强了。

实现伪继承还可以通过构造器的方式以及call()和applay()方法。这里不再赘述了。

JS对象的创建。

作为一个关联数组,JS对象的创建可以脱离原本的类进行。

三种创建方式:

使用new关键字:创建函数的时候,同时创建了类,也是唯一的构造方法。使用new关键字进行类实例的创建。其实这里说不说唯一构造器没什么必要。作为弱类型语言,其参数完全可以不匹配,甚至不传参。当然,可能会导致错误。

使用Object类:

var p = new Object();    //创建了一个空对象。
p.name = 'wang';

从上面可以看出,JS支持对象动态的增加其属性和方法。当一个类的某个对象需要增加对象时,不必使用prototype属性为整个类增加对象,使用属性自己增加即可。

使用JSON:从JS1.2之后,开始使用json。现在json已经发展为了一个收到广泛支持的、跨语言的、轻量级的数据交换格式。

var p = {
    name:'wang',
    age:24,
    lover:['play','study'],
    info:function(){
        alert('我叫'+name);
    }
}

现在暂时认为,json中的属性和方法,都是实例属性和方法。

### 回答1: JavaScript对象编程是指使用JavaScript语言创建和操作对象的过程。在JavaScript中,对象是一种复合数据类型,可以包含属性和方法。对象可以通过字面量、构造函数、原型等方式创建。通过对象编程,可以实现面向对象编程的思想,使代码更加模块化、可维护和可扩展。在JavaScript中,对象是非常重要的概念,掌握对象编程是成为一名优秀的JavaScript开发者的必备技能之一。 ### 回答2: JavaScript是一种流行的编程语言,其中面向对象编程(OOP)是其中的重要组成部分。对象是JavaScript编程中最重要的概念之一,它是一种数据类型,通过对象可以轻松地组织和管理数据。JS对象包含了一组属性和方法,可以用来描述某个对象的性质和行为。 在JavaScript中,对象是动态创建的。创建对象的方法有很多,其中最简单的就是使用字面量,例如: var person = { name: 'Tom', age: 20, gender: 'male', sayHi: function() { console.log('Hi, my name is ' + this.name + ',I am ' + this.age + ' years old.') } }; 上面的代码定义了一个名为person的对象,该对象具有属性name、age、gender和方法sayHi。使用字面量创建对象的好处是,可以轻松地在代码中定义对象,而无需使用专门的构造函数。 当然,也可以使用构造函数来创建对象,例如: function Person(name, age, gender) { this.name = name; this.age = age; this.gender = gender; this.sayHi = function() { console.log('Hi, my name is ' + this.name + ',I am ' + this.age + ' years old.') } }; var person = new Person('Tom', 20, 'male'); 上面的代码定义了一个名为Person的构造函数,在创建对象时使用了new关键字来调用该构造函数,返回一个新的person对象。这个对象包含了属性name、age、gender和方法sayHi。 在JavaScript中,对象是可以嵌套的。可以在对象中嵌套其他对象,也可以在对象中嵌套函数,这些函数就是对象的方法。通过对象的嵌套,可以更好地管理数据,使程序更加规范和易于维护。 总之,JavaScript的对象编程是一种强大且灵活的编程方式,通过对象可以轻松地组织和管理数据,从而实现更好的开发效率和代码质量。由于JavaScript的广泛应用,对于对象编程的掌握将有助于开发者更好地掌握这门语言。 ### 回答3: 在JavaScript中,对象是一种基础数据类型,也是语法的重要组成部分。对象是由若干属性构成的,每个属性都是键值对的形式,其中键是字符串类型,值可以是任意的JavaScript数据类型,包括对象。通过定义对象的属性和方法,我们可以在JavaScript中创建功能强大的程序。 JavaScript对象编程有以下几个重要概念: 1. 对象字面量:使用“{}”来定义对象,字符:“:”分割键与值,“,”分割不同键值对。如:var obj = {name: "小明", age: 18}; 2. 访问对象属性:使用“.”操作符访问对象属性。如:obj.name 3. 新增属性:使用“.”或“[]”,如:obj.height = 180; 或 obj['sex'] = 'male'; 4. 删除属性:使用“delete”关键字,如:delete obj.age; 5. 遍历对象属性:使用“for...in...”语句遍历对象属性,如: for(var key in obj) { console.log(key + ": " + obj[key]); } 6. 面向对象编程:JavaScript中也可以实现面向对象编程。定义一个构造函数,然后使用“new”关键字创建对象实例,如: function Person(name, age) { this.name = name; this.age = age; this.sayHello = function () { console.log("Hello, my name is " + this.name + ", I'm " + this.age + " years old."); } } var p = new Person('小明', 18); p.sayHello(); // 输出:Hello, my name is 小明, I'm 18 years old. JavaScript对象编程是非常灵活的,我们可以根据需要动态地定义、操作对象,同时结合面向对象编程,使得JavaScript的代码结构更加清晰有序。掌握好JavaScript对象编程的技巧,可以让我们开发出更高效、更具有扩展性的项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值