下面我将详细讲解JavaScript中函数、创建对象、封装、属性和方法、继承的完整攻略,并且会给出至少两个示例。
函数
函数的定义
函数是一段被封装起来的可复用代码块。在 JavaScript 中,函数可以通过 function
关键字来定义。函数定义的一般语法格式为:
function functionName(param1, param2, ...){
//函数体
return xxx;
}
其中,functionName
为函数的名称,param1, param2, ...
为函数的参数列表。函数体中编写需要执行的代码,函数可以带有返回值,在函数体内使用 return
语句声明返回值。
函数的调用
函数可以通过函数名来进行调用,调用时将会按照参数列表传入相应的参数,使用如下语法:
functionName(arg1, arg2, ...)
其中,arg1, arg2, ...
为函数调用所使用的参数。
示例
定义一个计算两个数之和的函数:
function add(a,b){
return a+b;
}
调用该函数:
let result = add(1,2); // result的值为3
对象
对象的创建
在 JavaScript 中,使用对象来封装数据和功能,用于实现封装和抽象。对象可以由以下几种方式创建:
- 对象字面量:
let obj = {
key1: value1,
key2: value2,
...
}
- 构造函数:
function Person(name, age) {
this.name = name;
this.age = age;
}
let person = new Person('Tom', 18);
示例
通过对象字面量方式创建对象:
let student = {
name: 'Tom',
age: 18,
gender: 'male',
study: function(){
console.log('I am studying!');
}
}
封装
如何实现封装
封装是将数据和行为包装在对象内部,实现面向对象编程的重要机制。在JavaScript中,封装可以通过将属性和方法提取到构造函数、类或者对象字面量内部来实现。将内部的属性和方法封装在内部后,外部无法直接访问,只能调用公共的方法来获取或者修改属性的值。
示例
使用构造函数实现封装:
function Person(name, age) {
let _name = name; // 将name属性封装在函数内部
let _age = age; // 将age属性封装在函数内部
this.getName = function() {
return _name;
}
this.getAge = function() {
return _age;
}
this.setName = function(name) {
_name = name;
}
this.setAge = function(age) {
_age = age;
}
}
let person = new Person('Tom', 18);
console.log(person.getName()); //输出Tom
person.setName('Jerry');
console.log(person.getName()); //输出Jerry
属性和方法
属性和方法的定义
在 JavaScript 中,属性和方法是对象的两部分公共接口。属性是存储在对象中的变量,方法是与对象相关的函数。在 JavaScript 中,可以通过以下两种方式定义属性和方法:
- 对象字面量
let obj = {
key1: value1,
func1: function(){
// 方法体
}
}
- 构造函数
function Person(name,age){
this.name = name;
this.age = age;
this.sayHello = function(){
console.log('Hello, I am ' + this.name);
}
}
let person = new Person('Tom', 18);
person.sayHello(); //输出Hello, I am Tom
示例
使用对象字面量定义属性和方法:
let student = {
name: 'Tom',
age: 18,
gender: 'male',
study: function(){
console.log('I am studying!');
}
}
console.log(student.name); //输出Tom
student.study(); //输出I am studying!
继承
继承的定义
在面向对象编程中,继承是通过派生一个类来获得新类的机制。在 JavaScript 中,可以通过以下两种方式实现继承:
- 原型继承
原型继承是 JavaScript 中的基本继承方式。每一个JavaScript对象都有一个原型对象,可以从原型对象继承属性和方法,同时子对象还可以为自己添加新的属性和方法。
- ES6的class关键字
ES6提供了 class
关键字用于定义类。类定义可以继承自其他类并添加新的属性和方法。
示例
ES6的class关键字实现继承:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(this.name + ' makes a noise');
}
}
class Dog extends Animal {
constructor(name) {
super(name); //调用父类的 constructor(name)
}
speak() {
console.log(this.name + ' barks');
}
}
let d = new Dog('Mitzie');
d.speak(); //输出 Mitzie barks
原型继承优化:
function Animal(name) {
this.name = name;
}
Animal.prototype.speak = function() {
console.log(this.name + ' makes a noise');
}
function Dog(name) {
Animal.call(this, name); //调用父类的构造函数
}
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;
Dog.prototype.speak = function() {
console.log(this.name + ' barks');
}
let d = new Dog('Mitzie');
d.speak(); //输出 Mitzie barks
以上就是JavaScript中函数、创建对象、封装、属性和方法、继承的详细讲解,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript的函数、创建对象、封装、属性和方法、继承 - Python技术站