JavaScript对象学习小结

下面是关于“JavaScript对象学习小结”完整攻略的详细讲解。

一、对象

JavaScript 中的对象是一组属性的集合,其中每个属性通过键与值相关联。可以通过多种方式创建对象。

1.1 对象的创建

可以使用对象字面量创建对象,对象字面量是一个逗号分隔的键值对的列表,放在花括号中。

例如:

var student = {
  name: 'Tom',
  age: 20,
  gender: 'male',
  sayHi: function(){
    console.log('Hi, I am ' + this.name);
  }
};

也可以使用构造函数创建对象,构造函数其实就是一个普通的函数,关键在于调用这个函数时使用了 new 操作符。

例如:

function Person(name, age, gender) {
  this.name = name;
  this.age = age;
  this.gender = gender;
  this.sayHi = function() {
    console.log('Hi, I am ' + this.name);
  }
}

var student = new Person('Tom', 20, 'male');

1.2 属性操作

可以使用点号或者方括号来访问对象的属性:

console.log(student.name); //输出 Tom
console.log(student['age']); //输出 20

可以使用 delete 运算符来删除对象的属性:

delete student.age;

1.3 构造函数的原型

除了直接在构造函数中定义属性和方法,还可以使用构造函数的原型来共享属性和方法。

例如:

Person.prototype.sayHello = function() {
  console.log('Hello, I am ' + this.name);
};

这样创建出来的所有实例,都可以共享这个方法。

二、继承

JavaScript 中的继承是通过原型链来实现的。子类可以通过原型链访问父类的方法和属性。

2.1 基本继承

可以使用 Object.create() 函数来创建一个新的对象,并将原对象指定为新对象的原型。新对象继承了原对象的所有属性和方法。

例如:

var person = {
  name: 'Tom',
  age: 20,
  sayHi: function() {
    console.log('Hi, I am ' + this.name);
  }
};

var student = Object.create(person);
student.name = 'Jerry';
student.gender = 'male';

student.sayHi(); //输出 Hi, I am Jerry

2.2 借用构造函数实现继承

可以使用 call 或 apply 函数来调用父类的构造函数,并传递当前的 this。

例如:

function Person(name) {
  this.name = name;
}

function Student(name, grade) {
  Person.call(this, name);
  this.grade = grade;
}

var student = new Student('Tom', 3);

2.3 组合继承

组合继承是同时使用基本继承和借用构造函数实现继承的方式。

例如:

function Person(name) {
  this.name = name;
}

Person.prototype.sayHi = function() {
  console.log('Hi, I am ' + this.name);
};

function Student(name, grade) {
  Person.call(this, name);
  this.grade = grade;
}

Student.prototype = Object.create(Person.prototype);
Student.prototype.constructor = Student;

var student = new Student('Tom', 3);

三、示例说明

3.1 对象示例

假设我们要创建一个博客的数据模型:

var article = {
  title: 'JavaScript 对象学习小结',
  author: 'Tom',
  content: '...',
  comments: [
    { name: 'Jerry', content: '非常好的一篇文章!' },
    { name: 'Alice', content: '写的很好,感谢分享!' }
  ],
  likeCount: 10,
  addLike: function() {
    this.likeCount++;
  }
};

我们可以通过访问 article 对象的属性和方法,来实现博客的显示和操作。

3.2 继承示例

假设我们需要创建一个图形类,包含一个求面积的方法,以及一个圆形子类。

function Shape() {}
Shape.prototype.getArea = function() {}

function Circle(radius) {
  this.radius = radius;
}
Circle.prototype = Object.create(Shape.prototype);
Circle.prototype.constructor = Circle;
Circle.prototype.getArea = function() {
  return Math.PI * this.radius * this.radius;
}

var circle = new Circle(10);
console.log(circle.getArea());

通过这种继承方式,我们可以方便地实现圆形和其他形状的扩展,并且继承了 Shape 中的方法和属性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript对象学习小结 - Python技术站

(0)
上一篇 3天前
下一篇 3天前

相关文章

  • javascript中如何判断类型汇总

    下面是关于JavaScript中如何判断类型的完整攻略。本文将涵盖JavaScript中的原始类型、引用类型等常见类型的判断方式,并提供了实例代码进行说明。 一、JavaScript中的类型 JavaScript中的数据类型可以分为两类:原始类型和引用类型。 1.1 原始类型 JavaScript中的原始类型有6种,分别为:undefined、null、bo…

    JavaScript 1天前
    00
  • JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)

    在JS中跨页面调用变量和函数可以通过以下几种方法实现: 1. 使用cookie 可以在页面中设置一个cookie,把需要共享的变量值存储到cookie中。然后在另一个页面中读取这个cookie,就能够获得变量值。示例如下: a.js function setCookie(c_name,value,expiredays){ var exdate=new Dat…

    JavaScript 2天前
    00
  • 详解JavaScript闭包问题

    下面是详解“详解JavaScript闭包问题”的完整攻略: 什么是闭包 闭包(Closure)指的是在一个函数内部声明的函数,该内部函数可以访问外部函数作用域内的变量。换句话说,如果在一个函数内部声明了另一个函数,并且外部的代码可以访问该内部函数,那么该内部函数才算是一个闭包。 闭包的特性 闭包有两个主要的特性: 可以访问外部函数作用域内的变量 可以在外部函…

    JavaScript 2023年5月18日
    00
  • js对字符串进行编码的方法总结(推荐)

    JS对字符串进行编码的方法总结 在Web开发中,我们经常需要对URL、HTML等不同类型的数据进行编码,以防止不必要的转义或注入攻击。JavaScript提供了多种方法对字符串进行编码,本文将对这些方法进行总结。 1. encodeURIComponent()方法 encodeURIComponent() 方法可把字符串作为 URI 组件进行编码。该方法会对…

    JavaScript 2023年5月20日
    00
  • javascript:void(0)的含义及用法实例

    当我们在网页中点击一个按钮或链接时,为了防止页面刷新或跳转,常常会在href属性中使用“javascript:void(0)”这个值。那么这个值的含义以及用法实例是什么呢?接下来我们详细讲解。 含义 在javascript中,void是一个运算符,用于返回undefined。因此,使用“javascript:void(0)”就是将当前链接的默认行为赋值为“什…

    JavaScript 2天前
    00
  • Javascript实现的SHA-256加密算法完整实例

    Javascript实现的SHA-256加密算法完整实例 SHA-256是一种常用的加密算法,可以对文本进行加密处理,被广泛应用于网络安全、密码学等领域。本文将介绍如何使用javascript语言实现SHA-256加密算法,并提供详细的完整代码实例。 一、SHA-256加密算法基础知识 SHA-256是一种基于哈希加密算法的加密方式,它可以将任意长度的输入信…

    JavaScript 2023年5月19日
    00
  • Java日常练习题,每天进步一点点(34)

    《Java日常练习题,每天进步一点点(34)》是一篇Java编程练习题目的博客文章。该文中提供了10个常见的Java编程问题,供读者进行练习,提高编程水平。以下是对于该文章的详细讲解攻略: 标题 标题使用 # 号,# 号的数量代表标题级数 需要在每个标题后面空一行 代码块 代码块使用 “` 或者缩进四个空格 代码块中的代码可以被正确地渲染 内容 内容中需要…

    JavaScript 1天前
    00
  • 简单聊一聊原生Ajax与JQuery Ajax

    一、原生Ajax 什么是原生Ajax? Ajax是Asynchronous JavaScript and XML的缩写,即异步的JavaScript和XML。AJAX 允许网页在不重新加载的情况下更新部分内容。原生Ajax是指使用JavaScript的XMLHttpRequest对象操作Web服务器执行异步数据交换(通常与JSON和XML数据格式一起使用)的…

    JavaScript 2023年5月19日
    00
  • JavaScript常用脚本汇总(三)

    下面来详细讲解一下“JavaScript常用脚本汇总(三)”。 概述 本文是JavaScript常用脚本汇总系列的第三篇,主要介绍一些常用的JavaScript脚本及其用法,希望能为广大JavaScript开发者提供一些参考和帮助。本文内容主要包括:局部刷新页面、自动保存草稿、获取浏览器版本信息和判断是否为移动端等。 局部刷新页面 在传统的Web应用程序中,…

    JavaScript 2023年5月18日
    00
  • JavaScript输出斐波那契数列的实现方法

    下面是详细的讲解“JavaScript输出斐波那契数列的实现方法”的完整攻略。 什么是斐波那契数列 斐波那契数列是指:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以递归的方式定义:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n>=2,n∈N*>)。 实现方法 方法一:递归实现 递归实现斐波那契数列非常…

    JavaScript 2天前
    00