2020-12-29(对象)

对象声明

js中对象的两种声明方式

  • var obj = {};
  • var obj = new Object();
null 不属于 object

尽管 typeof(null) 返回一个 “object”但是null并不是一个object,不同的对象在底层都表示为二进制,在 JavaScript 中二进制前三位都为 0 的话会被判断为 object 类型,null 的二进制表示是全 0,自然前三位也是 0,所以执行 typeof 时会返回“object”。

“类”
  • String,Number,Boolean,Object,Function,Array,Date,RegExp,Error
  • 从形式上比较像类的概念,但实际上只是个实现了一些复杂功能的函数
var str = "123";
var str2 = new String("123");
typeof str2 //'object'
typeof str1 //'string'
“访问对象的成员/属性”
  • .key :”通常称为属性访问“
  • [key] : “通常称为键访问”
  • 两者的不同之处
[key]的形式可以进行一些计算,可以使用字符串的形式进行访问
例如
var obj = {
	"123456" : 2
}
obj["123" + "456"]  // 2
如果你使用 string(字面量)以外的其他值作为属性名,
那它首先会被转换为一个字符串。
例如
var obj2 = {
}
obj[obj2] ===> obj['[object Object]']
js中的“方法”
function foo() {
	console.log(this.a)
}
var obj = {
	foo : foo
}
因为js中对象对于函数的保存也仅仅是保存了函数的引用,而函数本身
的this指向也是动态地进行绑定所以函数与对象之间并没有直接的关系
对象属性的另一种设置方案
Object.defineProperty( obj, 'key', {
  value: '',
  writable: boolean,
  configuration: boolean,
  enumrable: boolean
  ...
})    
```
表示为obj对象配置'key'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值