class Dog { // 01-------------------------------------------------------- // name = '旺财'; // age = 7; // 02-------------------------------------------------------- // name: string; // 属性“name”没有初始化表达式,且未在构造函数中明确赋值。 // age: number; // 属性“age”没有初始化表达式,且未在构造函数中明确赋值。 // 构造函数会在对象创建时执行 constructor(name: string, age: number) { // 在实例方法中,this就表示当前当前的实例 // 在构造函数中当前对象就是当前新建的那个对象 // 可以通过this向新建的对象中添加属性 this.name = name; this.age = age; } bark() { console.log('汪汪汪'); // 汪汪汪 // 在方法中可以通过this来表示当前调用方法的对象 return this.name; } } // 错误示例-------------------------------------------------------- // const dog1 = new Dog(); // const dog2 = new Dog(); // 01-------------------------------------------------------- // console.log('dog1:', dog1); // // dog1: Dog {name: "旺财", age: 7} // console.log('dog2:', dog2); // // dog2: Dog {name: "旺财", age: 7} // 02-------------------------------------------------------- // console.log('dog1:', dog1); // // dog1: Dog {} // console.log('dog2:', dog2); // // dog2: Dog {} // 正确示例-------------------------------------------------------- const dog1 = new Dog('小黑', 6); const dog2 = new Dog('小白', 7); console.log('dog1:', dog1); // dog1: Dog {name: "小黑", age: 6} console.log('dog2:', dog2); // dog2: Dog {name: "小白", age: 7} // 03-------------------------------------------------------- // 调用类中的方法 console.log('dog1:', dog1.bark()); // dog1: 小黑 console.log('dog2:', dog2.bark()); // dog1: 小白
typescript中class的constructor(构造函数)
关注
打赏