一、直接定义对象
let gift = {
gifts: ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"],
// 无参数
giftPicker: function () {
// 必须用 => this才正确
return () => {
return this.gifts[0];
}
},
// 有参数
testFun: function (idx: number) {
// 必须用 => this才正确
return (idx: number) => {
return this.gifts[idx];
}(idx);
}
}
// 无参数调用
let pickGift = gift.giftPicker(); // 指向函数地址
alert(pickGift());
//或
alert(gift.giftPicker()()); // 直接调用
// 有参数调用
let testFun = gift.testFun(); // 指向函数地址
alert(testFun(1));
//或
alert(gift.testFun()(1)); // 直接调用
二、先定义类,再实例化
// 类的写法
class Car{
engine: string = "xyz";
testFun() {
return this.engine;
}
}
let car = new Car();
alert(car.testFun());