对象属性赋值用“对象名.属性名=值”,方法调用用“对象名.方法名()”;点号访问简洁常用,方括号支持动态属性名;未定义属性读取返回undefined,调用不存在方法报typeerror。

对象属性赋值和方法调用是面向对象编程中最基础、最常用的操作,核心就两点:用点号(.)访问成员,赋值用 =,调用加括号 ()。
给对象属性赋值
通过 对象名.属性名 = 值 直接设置或修改属性。属性可以是基本类型(如数字、字符串),也可以是其他对象或函数(此时它就成了方法)。
- 如果属性原本不存在,赋值会自动创建该属性
- 已存在的属性会被新值覆盖
- 支持链式赋值(如
obj.a = obj.b = 42),但需注意语义清晰性
例如:
let user = {}; user.name = "张三"; user.age = 25; user.isAdmin = true;读取对象属性
同样用点号访问:对象名.属性名,返回对应值。读取未定义的属性不会报错,结果是 undefined。
- 属性名含特殊字符(如空格、短横线)或为变量时,改用方括号语法:
obj["first-name"]或obj[variable] - 点号更简洁常用;方括号更灵活,适合动态访问
例如:
console.log(user.name); // "张三" console.log(user.city); // undefined(不报错)调用对象上的方法
方法本质是绑定在对象上的函数。调用方式是:对象名.方法名()。注意括号不能省略,否则只是获取函数引用,不会执行。
- 方法内部的
this默认指向当前对象(非箭头函数情况下) - 传参方式与普通函数一致,写在括号内,用逗号分隔
- 若方法不存在,调用会报
TypeError: obj.method is not a function
例如:
user.sayHello = function() { return `你好,我是${this.name}`; }; console.log(user.sayHello()); // "你好,我是张三"注意事项与常见陷阱
实际操作中容易忽略几个关键细节:
- 赋值或调用前确保对象已正确定义(避免
Cannot set property of undefined) - 区分
obj.fn(获取函数)和obj.fn()(执行函数) - 箭头函数不绑定
this,在方法中慎用,否则this可能指向意外对象 - 属性名是字符串,大小写敏感:
obj.Name和obj.name是两个不同属性










