一切皆对象

对象的属性值可以是个对象,也可以是个函数,这个函数称为对象的方法

如果寻找一个对象的属性没有的话,会是undefined,如果寻找变量的话会报错

对象{

  1. 内建对象:objfuntion<br /> 宿主对象<br /> 自定义

1.构造对象

  1. 使用new调用的函数是构造函数
  2. var obj = new Object()
  3. obj.name = '孙悟空'
  4. obj.age = 500
  5. // delete obj.name
  6. var obj2 = new Object()
  7. obj2.name = '猪八戒'
  8. obj.test = obj2
  9. console.log(obj.test.name)

2.字面量的方式创建对象

  1. 常用:
  2. var obj = {
  3. name:'孙悟空',
  4. age:500,
  5. sex:'男',
  6. add:'花果山'
  7. }

3.用对象保存参数传给函数

  1. var obj = {
  2. name:'孙悟空',
  3. age:500,
  4. sex:'男',
  5. add:'花果山'
  6. }
  7. function fun(obj){
  8. console.log('我是'+obj.name+',今年'+obj.age+'岁了,'+'我是'+obj.sex+'的,'+'我来自'+obj.add)
  9. }
  10. fun(obj)

4.实参也可以是个函数

  1. var obj = {
  2. name:'孙悟空',
  3. age:500,
  4. sex:'男',
  5. add:'花果山'
  6. }
  7. function fun(obj){
  8. console.log('我是'+obj.name+',今年'+obj.age+'岁了,'+'我是'+obj.sex+'的,'+'我来自'+obj.add)
  9. }
  10. function sayHello(a){
  11. a(obj)
  12. }
  13. sayHello(fun)

5.枚举对象中的属性

  1. var obj = {
  2. name : '孙悟空',
  3. age : 500,
  4. sex : '男',
  5. add : '花果山'
  6. }
  7. for(var n in obj){
  8. console.log(n+':'+obj[n])
  9. }

6.工厂方法创建对象

  1. 工厂方法创建对象
  2. function createPerson(name,age,sex){
  3. var obj = {
  4. name:name,
  5. age:age,
  6. sex:sex
  7. }
  8. // var obj = new Object;
  9. // obj.name = name;
  10. // obj.age = age;
  11. // obj.sex = sex
  12. // 需要注意的是要做一个返回值存储对象,没有返回值,无法接收数据
  13. return obj
  14. }
  15. var obj1 = createPerson('孙悟空',500,'男')
  16. console.log(obj1)