关于JavaScript中的函数可以附属于它所加到的对象上,只能通过该对象访问
时间: 2024-03-01 20:55:53 浏览: 5
这个说法是正确的。在 JavaScript 中,函数可以作为对象的属性,称为方法。当函数被附属到一个对象上时,它就可以通过该对象访问。
例如:
```javascript
var person = {
firstName: "John",
lastName: "Doe",
fullName: function() {
return this.firstName + " " + this.lastName;
}
};
console.log(person.fullName()); // 输出 "John Doe"
```
在上面的示例中,`fullName()` 函数被附属到 `person` 对象上,它可以访问 `person` 对象的属性 `firstName` 和 `lastName`。在调用 `fullName()` 方法时,使用了 `this` 关键字来引用当前对象,这样就可以访问该对象的属性。
需要注意的是,如果直接调用 `fullName()` 函数而不通过 `person` 对象访问它,那么 `this` 关键字将指向全局对象,这将导致函数无法正常工作。因此,函数附属于对象时,应该始终通过该对象来访问它。
相关问题
JavaScript 中同一个函数可以被附属到多个对象上
这个说法是正确的。在 JavaScript 中,同一个函数可以被附属到多个对象上,这些对象可以共享该函数的代码逻辑。
例如:
```javascript
var person1 = {
firstName: "John",
lastName: "Doe"
};
var person2 = {
firstName: "Jane",
lastName: "Doe"
};
function fullName() {
return this.firstName + " " + this.lastName;
}
person1.fullName = fullName;
person2.fullName = fullName;
console.log(person1.fullName()); // 输出 "John Doe"
console.log(person2.fullName()); // 输出 "Jane Doe"
```
在上面的示例中,`fullName()` 函数被附属到了 `person1` 和 `person2` 两个对象上,这两个对象都可以访问该函数。调用 `person1.fullName()` 和 `person2.fullName()` 时,`this` 关键字分别指向 `person1` 和 `person2` 对象,从而返回不同的结果。
需要注意的是,附属于不同对象的同名函数并不是相互绑定的,它们之间并没有关联。因此,对其中一个对象上的函数进行修改并不会影响到其他对象上的函数。
JavaScript中的函数就是个对象
这个说法是正确的。在 JavaScript 中,函数就是一种特殊的对象,可以像普通对象一样被创建、传递、引用和添加属性。
例如:
```javascript
function greeting(name) {
console.log("Hello, " + name + "!");
}
greeting.language = "English";
console.log(greeting.language); // 输出 "English"
```
在上面的示例中,`greeting` 函数被创建,并且像一个普通对象一样添加了一个 `language` 属性。这个属性可以被函数外部所访问,并且它的值是字符串 "English"。
需要注意的是,函数对象有一些特殊的行为和属性,例如可以通过 `new` 关键字创建对象、可以访问 `prototype` 属性、可以使用 `call()` 和 `apply()` 方法来改变函数的执行上下文等。但从本质上来说,函数对象就是一种特殊的对象。