我就不刁旭概念什么的问题了哈~直接进入工作中所通用的一些有关object的方法和属性
1).for/in
属性的遍历~他遍历的对象没有特定的顺序,而且只能枚举出所有用户自定义的属性,不能枚举出某些预定义的属性或方法
2).in
检测属性的存在性 if("o" in x) x.o =1;
还有一种方法:if(x.o != undefined) x.o =1;属性X值存在但还没有值。第一行的把o设为1 而第二行什么都不干
3).delete
删除属性~实际上从对象移除了属性,在删除之后,for/in将不会枚举改属性,并且in运算符也不会检测到改属性
4).object.property/object["property"]
5) .constructor
初始化这个对象的构造函数。用于确定一个对象的类型。同instanceof一样的功能
eg: var d = new Date();
d.constructor == Date;//true
o instanceof Date //true
函数:
函数大家应当不会陌生的,在此我们讨论下函数参数的问题
好的习惯2:在设计可选的参数时~应该确保把可选的参数放在参数的末尾,以便他们可以被忽略
判断某个参数是否在可以用 a = a || [];
类,构造函数和原型:
构造函数初始化的每个对象都确实从原型那里继承了完全相同的一组属性。这意味着,原型对象是放置方法和其他不变属性的理想地方。
注意:对象只有在读取时才会继承其原型对象的属性和方法~而对于写入是不会使用原型对象的
关于类的一些常见说法:
- 类的实现是基于原型继承机制的。 如果2个实例从同一个原型对象继承了属性,我们说他们是同一个类的实例。
- 遵循一个常见的编程约定:从某种意义上讲,定义构造函数即是定义类,并且类名首字母要大写,而普通的函数和方法都是首字母小写。
- 原型对象是类的唯一标示:当且仅当2个对象继承自同一个原型对象时,他们才是属于同一个类的实例
- 构造函数是类的“外在表现”,“公共标识”
每个Javascript函数都自动拥有一个prototype属性(对象),这个对象包含唯一一个不可枚举属性constructor,constructor的值是一个函数对象,这意味着对象通常继承的constructor均指代他们的构造函数。由于构造函数是类的“公共标示”,
因此这个constructor属性对对象提供了类。
var o = new F();
o.constructor == F //true