// 创建对象并分配内存
var person = new Object();
person.name = 'Alice';
person.age = 30;
或
// 字面量方式创建对象并分配内存
var person = {
name: 'Alice',
age: 30
};
new
关键字调用构造函数来创建对象,引擎会先创建一个新的空对象,然后将该对象的原型指向构造函数的 prototype
属性,并将新对象作为上下文(this
)执行构造函数内部的代码。function Person(name, age) {
this.name = name;
this.age = age;
}
var alice = new Person('Alice', 30);
.
或 []
操作符访问和修改其属性。
alice.sayHello = function() {
console.log('Hello, my name is ' + this.name);
};
alice.sayHello(); // 输出:Hello, my name is Alice
function outerFunction() {
var outerVar = 'outer';
function innerFunction() {
console.log(outerVar); // 能够访问到outerVar,这是因为闭包的作用
}
innerFunction();
}
outerFunction();
var obj1 = { data: 'some value' };
var obj2 = obj1;
obj1 = null; // 现在只有obj2指向原对象
// 后续如果obj2也被设置为null或者超出作用域,则原对象成为不可达,会被GC回收
总之,在 JavaScript 中,对象从创建到销毁的过程涉及内存管理、作用域规则以及垃圾回收策略等多个方面,理解这些概念对于编写高效且无内存泄漏的 JavaScript 代码至关重要。