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