0
点赞
收藏
分享

微信扫一扫

【JavaScript】对象创建、对象访问


目录

  • ​​一、对象创建​​
  • ​​1. Object构造函数模式​​
  • ​​2. 对象字面量形式​​
  • ​​3. 工厂模式(很少使用)​​
  • ​​4. 自定义构造函数模式​​
  • ​​5. 构造函数+原型的组合模式​​
  • ​​二、访问对象数据的方法​​

一、对象创建

1. Object构造函数模式
  • 先创建Object,再动态添加属性或方法。适用于开始不确定对象内部数据的情况

var p = new Object();
p.name = 'tom';
p.age = 18;
p.setAge = function (age){
this.age = age;
}

2. 对象字面量形式
  • 使用​​{}​​创建对象,同时指定方法和属性。适用于开始时对象内部数据确定的情况

var p ={
p.name = 'tom';
p.age = 18;
p.setAge = function (age){
this.age = age;
}
}

3. 工厂模式(很少使用)
  • 通过工厂函数动态创建动态对象并返回,适用于创建多个对象的情况

function createPerson(name,age){
var obj=new Object();
obj.name=name;
obj.age=age;
obj.setAge=function(){
this.age = age;
}
return obj;
}
var obj=createPerson("工厂",18);

4. 自定义构造函数模式
  • 构造函数的执行流程
    (1)立刻创建一个新的对象
    (2)将新创建的对象设置为函数中的this,在构造函数中可以使用​​​this​​​来引用新建的对象
    (3)逐行执行函数中代码
    (4)将新建的对象作为返回值执行
  • 可以使用​​instanceof​​​检查一个对象是否属于一个类的实例,返回​​true​​​或​​false​

function Person(name,age){
this.name=name;
this.age=age;
this.setAge=function(){
this.age = age;
}
}
var obj=new Person("tom",18);
console.log(obj instanceof Person); //true

5. 构造函数+原型的组合模式
  • 自定义构造函数,属性在函数中初始化,方法添加在原型上。适用于创建多个类型确定的对象

function Person(name,age){
this.name=name;
this.age=age;
}
Person.prototype.setAge=function(){
this.age = age;
}

var obj=new Person("tom",18);

二、访问对象数据的方法

  1. 用​​.属性名​​的方式访问:当属性名包含特殊字符​​-​​ ,​​空格​​时不能使用;变量名不确定时也不能使用
  2. 用​​['属性名']​​的方式访问:通用

//变量名存储在变量中,变量名不确定
var p ={};
var propName = 'age';
var value = 20;

//将age属性添加到对象p中
p.propName = value; // 不可用
p[propName] = value; // 可用


举报

相关推荐

0 条评论