JavaScript是一门弱类型语言,采用的是基于原型的继承方式。在JavaScript中,有两种继承方式:原型继承和类继承。
原型继承是JavaScript中最基本的继承方式,它是通过原型链来实现的。在JavaScript中,每个对象都有一个原型对象,而原型对象也可以有自己的原型对象,这样就形成了一条原型链。如果我们访问一个对象中的某个属性或方法,但该对象本身并没有这个属性或方法,它就会沿着原型链一直往上查找,直到找到为止。
下面是原型继承的一个简单案例:
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.sayHi = function() {
console.log('Hi, my name is ' + this.name);
};
var p = new Person('Tom', 18);
p.sayHi(); // Hi, my name is Tom在上面的代码中,我们定义了一个Person构造函数,并将它的原型对象上添加了一个sayHi方法。然后我们创建了一个p对象,并调用了它的sayHi方法。由于p对象本身没有sayHi方法,它就会沿着原型链一直往上查找,最终找到了Person构造函数的原型对象上的sayHi方法,并成功调用了它。
类继承是ES6中新增的继承方式,它是通过class关键字来实现的。在ES6中,我们可以通过extends关键字来实现类的继承,子类可以继承父类的属性和方法,并且可以自己定义新的属性和方法。
下面是类继承的一个简单案例:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHi() {
console.log('Hi, my name is ' + this.name);
}
}
class Student extends Person {
constructor(name, age, grade) {
super(name, age);
this.grade = grade;
}
study() {
console.log('I am studying in grade ' + this.grade);
}
}
var s = new Student('Tom', 18, 3);
s.sayHi(); // Hi, my name is Tom
s.study(); // I am studying in grade 3在上面的代码中,我们定义了一个Person类,并在它的原型对象上添加了一个sayHi方法。然后我们定义了一个Student类,并通过extends关键字继承了Person类。在Student类中,我们定义了一个study方法,并在其构造函数中调用了父类的构造函数,并添加了新的属性grade。最后我们创建了一个s对象,并成功调用了它的sayHi方法和study方法。
在JavaScript中,函数是第一类对象,可以像其他对象一样被传递、赋值、作为参数或返回值进行操作。在使用函数时,还需要注意以下细节:
下面是一些常用的函数使用案例:
// 判断是否为函数
function isFunction(fn) {
return typeof fn === 'function';
}
// 判断是否为数组
function isArray(arr) {
return Array.isArray(arr);
}
// 判断是否为对象
function isObject(obj) {
return typeof obj === 'object' && obj !== null;
}
// 判断是否为字符串
function isString(str) {
return typeof str === 'string';
}
// 数组去重
function unique(arr) {
return Array.from(new Set(arr));
}在上面的代码中,我们定义了一些常用的函数,并实现了相关的功能。这些函数可以帮助我们简化代码,提高开发效率。
总之,JavaScript中的原型继承和类继承是非常重要的概念,对于编程小白来说,理解它们的使用方法和细节非常有帮助。同时,熟练掌握函数的使用方法也是非常重要的,它可以帮助我们更加高效地编写代码。
本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com
