前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript 对象(下)

JavaScript 对象(下)

原创
作者头像
陈不成i
修改2021-07-20 17:41:33
2020
修改2021-07-20 17:41:33
举报
文章被收录于专栏:ops技术分享ops技术分享

使用对象构造器

本例使用函数来构造对象:

实例

代码语言:javascript
复制
function person(firstname,lastname,age,eyecolor)
{
    this.firstname=firstname;
    this.lastname=lastname;
    this.age=age;
    this.eyecolor=eyecolor;
}

在JavaScript中,this通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时)


创建 JavaScript 对象实例

一旦您有了对象构造器,就可以创建新的对象实例,就像这样:

代码语言:javascript
复制
var myFather=new person("John","Doe",50,"blue");
var myMother=new person("Sally","Rally",48,"green");

把属性添加到 JavaScript 对象

您可以通过为对象赋值,向已有对象添加新属性:

假设 person 对象已存在 - 您可以为其添加这些新属性:firstname、lastname、age 以及 eyecolor:

代码语言:javascript
复制
person.firstname="John";
person.lastname="Doe";
person.age=30;
person.eyecolor="blue";

x=person.firstname;

在以上代码执行后,x 的值将是:

代码语言:javascript
复制
John

把方法添加到 JavaScript 对象

方法只不过是附加在对象上的函数。

在构造器函数内部定义对象的方法:

代码语言:javascript
复制
function person(firstname,lastname,age,eyecolor)
{
    this.firstname=firstname;
    this.lastname=lastname;
    this.age=age;
    this.eyecolor=eyecolor;

    this.changeName=changeName;
    function changeName(name)
    {
        this.lastname=name;
    }
}

changeName() 函数 name 的值赋给 person 的 lastname 属性。

现在您可以试一下:

代码语言:javascript
复制
myMother.changeName("Doe");

JavaScript 类

JavaScript 是面向对象的语言,但 JavaScript 不使用类。

在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。

JavaScript 基于 prototype,而不是基于类的。


JavaScript for...in 循环

JavaScript for...in 语句循环遍历对象的属性。

语法

代码语言:javascript
复制
for (variable in object)
{
    执行的代码……
}

注意: for...in 循环中的代码块将针对每个属性执行一次。

实例

循环遍历对象的属性:

实例

代码语言:javascript
复制
var person={fname:"John",lname:"Doe",age:25}; 
 
for (x in person)
{
    txt=txt + person[x];
}

JavaScript 的对象是可变的

对象是可变的,它们是通过引用来传递的。

以下实例的 person 对象不会创建副本:

代码语言:javascript
复制
var x = person;  // 不会创建 person 的副本,是引用

如果修改 x ,person 的属性也会改变:

实例

代码语言:javascript
复制
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}
 
var x = person;
x.age = 10;           //  x.age 和 person.age 都会改变

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用对象构造器
  • 实例
  • 创建 JavaScript 对象实例
  • 把属性添加到 JavaScript 对象
  • 把方法添加到 JavaScript 对象
  • 现在您可以试一下:
  • JavaScript 类
  • JavaScript for...in 循环
    • 语法
      • 实例
      • 实例
      • JavaScript 的对象是可变的
      • 实例
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档