1. 直接调用:
function sayHello() {
console.log("Hello!");
}
sayHello(); // 输出: Hello!
2. 方法调用:
var person = {
name: "John",
sayHello: function() {
console.log("Hello, " + this.name + "!");
}
};
person.sayHello(); // 输出: Hello, John!
3. 使用 call 或 apply 方法进行调用:
function sayHello(message) {
console.log(message + ", " + this.name + "!");
}
var person1 = { name: "Alice" };
var person2 = { name: "Bob" };
sayHello.call(person1, "Hi"); // 输出: Hi, Alice!
sayHello.apply(person2, ["Hola"]); // 输出: Hola, Bob!
4. 使用箭头函数:
箭头函数没有自己的 this,它继承父作用域的 this。
var person = {
name: "Charlie",
sayHello: function() {
setTimeout(() => {
console.log("Hello, " + this.name + "!");
}, 1000);
}
};
person.sayHello(); // 输出: Hello, Charlie!
5. 使用 bind 方法:
bind 方法创建一个新函数,其中 this 被设置为传递给 bind 的值。
function sayHello() {
console.log("Hello, " + this.name + "!");
}
var person = { name: "David" };
var greetDavid = sayHello.bind(person);
greetDavid(); // 输出: Hello, David!
这些是一些常见的 JavaScript 函数调用方式。选择合适的方式通常取决于你的需求以及你希望函数内部的 this 如何被处理。
转载请注明出处:http://www.pingtaimeng.com/article/detail/3543/JavaScript