不知道你有没有这样的疑问,在 js 里对象的表示是这样的:
var obj = {}
obj.a = 1
但是在 PHP 中却是叫关联数组:
<?php
//创建一个关联数组,关联数组的键“orange”,值是“橘子”
$fruit=array('orange'=>'橘子');
echo $fruit['orange'];
?>
而 PHP 中的对象指的是:
要创建一个新的对象 object,使用 new 语句实例化一个类
<?php
class foo
{
function do_foo()
{
echo "Doing foo.";
}
}
$bar = new foo;
$bar->do_foo();
?>
$bar 就是对象
揭开谜底
先看看关联数组的定义:
“关联数组”是一种具有特殊索引方式的数组。不仅可以通过整数来索引它,还可以使用字符串或者其他类型的值(除了NULL)来索引它。
JavaScript的对象本质就是一个关联数组。
一般面向对象语言中的对象是指的通过 new 语句实例化一个类得到的对象,js 中的对象其实和其他语言的关联数组是一个东西。
当然,在 js 里也可以实现一个关联数组,毕竟 js 里万物皆是对象,数组也是对象。
let arr = []
arr.a = 1
console.log(arr) // [a:1]
// 获取 a
console.log(arr.a) // 1