美文网首页
JavaScript - 对象

JavaScript - 对象

作者: Hyso | 来源:发表于2019-04-10 09:51 被阅读0次
  • 对象是键值对的集合,对象是由属性和方法构成的(也有说法为:对象里面皆属性,认为方法也是一个属性)

创建对象

1) 第一种方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</style>
</style>
</head>
<body>
    <script type="text/javascript">
        var student = {
            name: "小白",
            grade: "初二",
            say: function(){
                console.log("你好");
            }
        };
    </script>
</body>
</html>

2)第二种方式:构造函数方式

  • 任何函数都可以当成构造函数,把一个函数通过 new 的方式来进行调用时,称之为构造函数的调用。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</style>
</style>
</head>
<body>
    <script type="text/javascript">
        function Student(name, grade, say) {
            this.name = name;
            this.grade = grade;
            this.say = say;
        }

        var student = new Student('小白', '初二', function(){
            console.log('你好');
        });
    </script>
</body>
</html>

更多构造函数创建对象的例子:

var xiaoMing = new Object();
var xiaoMing = {};

var rooms = new Array(1, 3, 5);
var rooms = [1, 3, 5];

var reg = new RegExp('123');
var reg = '/123/';
  • 构造函数的执行过程:

1)创建一个对象(我们把这个对象称之为该构造函数的实例,如 p1)。
2)创建一个内部对象:this,将 this 指向该实例(p1)
3)执行函数内部代码,其中,操作 this 的部分就是操作了该实例(p1)
4)创建对象后的返回值:

如果函数没有返回值(没有 return 语句),那么就会返回该实例(p1)

function Fn(){
}
// fn 是构造函数 Fn 的实例
var fn = new Fn();

如果函数返回了一个基本数据类型(数字、字符串、布尔值、null、undefined)的值,那么本次函数的返回值是该实例(p1)

function Fn(){
    return 1;
}
// fn 是构造函数 Fn 的实例
var fn = new Fn();

如果函数返回了一个复杂数据类型的值,那么本次函数的返回值就是该值

function Fn(){
    return [1, 2, 3];
}
// fn 不是构造函数 Fn 的实例
var fn = new Fn();
  • 一个函数通过 new 调用,或者不通过 new 调用,很多时候会有截然不同的返回值

内置函数 Stirng():

// a 为字符串
var a = String(100);

// b 为对象
var b = new String(100);
  • 判读一个对象是不是某个构造函数的实例
function Person(){
}
var p1 = new Person();

// true,p1 是构造函数 Person 的实例
console.log((p1 instanceof Person);
function Person(){
    return 100;
}
var p1 = new Person();

// true,p1 是构造函数 Person 的实例
console.log((p1 instanceof Person);
function Person(){
    return [1, 3, 5];
}
var p1 = new Person();

// false,p1 不是构造函数 Person 的实例
console.log((p1 instanceof Person);

// true,p1 不是构造函数 Array 的实例
console.log((p1 instanceof Array);

获取对象属性

1)第一种方式:.语法

// 获取到 name 属性的值,为:小白
var name = student.name;
// 获取到一个函数
var say = student.say;

.语法虽然使用起来更方便,但是有局限性:
. 后面不能使用 js 中的关键字、保留字
. 后面不能使用数字

2)第二种方式:[]语法

// 获取到 name 属性的值,为:小白
var name = student["name"];
// 获取到一个函数
var say = student["say"];

设置对象属性

1)第一种方式:.语法

// 设置 name 属性的值为小白
student.name = "小白";
// 设置 say 属性的值为一个函数
student.say = function(){
    console.log("你好");
}

2)第二种方式:[]语法

// 设置 name 属性的值为小白
student["name"] = "小白";
// 设置 say 属性的值为一个函数
student.["say"] = function(){
    console.log("你好");
}

删除对象属性

关键字 delete 只能删除对象中的属性,不能删除变量!!!

1)第一种方式:.语法

// 删除 name 属性
delete student.name;

2)第二种方式:[]语法

// 删除 name 属性
delete student["name"];

相关文章

网友评论

      本文标题:JavaScript - 对象

      本文链接:https://www.haomeiwen.com/subject/ggbgiqtx.html