首页 > 编程语言 >JavaScript中的面向对象及原型和原型链

JavaScript中的面向对象及原型和原型链

时间:2022-08-26 21:44:17浏览次数:71  
标签:name JavaScript 面向对象 原型 显式 var new

一、面向对象概述:

面向对象是一种编程思维(oop Object Oriented Programming),简单来说就是对应的对象做对应的操作,面向对象的核心就是将内容抽取为属性将行为抽取为方法

二、面向对象的特点

  1. 封装
  2. 继承
  3. 多态

三、创建对象

  • 使用new关键词创建对象
function Person(){
console.log(this);
}
var person = new Person()
person.name ="jack"
  • 使用工厂模式创建对象
function factor(name){
    var obj = new Object()
    obj.name = name
    return obj
}
    var person = factor("jack")
    console.log(person);
  • 通过花括号创建对象
var person = {
        name:'张三',
        age:18,
        eat(){
        console.log("吃饭")
        }
}
  • 构造函数创建对象
function Color(color){
    this.color = color;

}


var myColor = new Color("红色");
var myColor1 = new Color("蓝色");
alert(myColor1.color);

四、原型

prototype(显式原型)

显式原型是每一个函数都具有的原型对象,只有函数有显式原型,显式原型上能存放一些内容,这意味着,我们可以把那些不变(公用)的属性和方法,直接定义在prototype对象属性上。

__proto__(隐式原型)

隐式原型是每一个对象都拥有的,它是连接函数显式原型的

五、原型链

原型链:实例对象与原型之间的连接,叫做原型链。

简单的来说就是隐式原型向父类隐式原型向上找内容的过程

原型链向上找,如果找不到就继续向上找,一直找到顶层对象Object,如果顶层对象没有就返回一个null

标签:name,JavaScript,面向对象,原型,显式,var,new
From: https://www.cnblogs.com/nanchengleiluo/p/16629362.html

相关文章

  • javascript怎么判断字符串是否是数字
    在javascript中,可以利用Number()函数和isNaN()函数来判断字符串是否是数字,语法“isNaN(Number("字符串",10)”;如果返回true,则该字符串不是数字,否则是数字。javascript判断......
  • [Javascript] Prototype Pattern
    Source:https://javascriptpatterns.vercel.app/patterns/design-patterns/prototype-pattern Ifyouusefactorypatterntocreateobject:constcreateDog=(nam......
  • [Javascript] Factory pattern vs Class instance
    InJavaScript,thefactorypatternisn'tmuchmorethanafunctionthatreturnsanobjectwithoutusingthe new keyword. ES6arrowfunctions allowustocr......
  • JavaScript变量及声明
    本文介绍了如何使用语法和示例声明和使用变量。变量用于将数据存储在JavaScript代码中。在JavaScript中使用变量之前,必须先对其进行声明。让我们看一下如何声明一个变量。......
  • JavaScript if else语句
    在编写程序时,可能需要从一组给定的路径中采用一个。在这种情况下,您需要使用条件语句,以使程序可以做出正确的决定并执行正确的操作。在JavaScript中,if-else语句用于在条件......
  • JavaScript switch语句
    除了if...else之外,JavaScript还有一个称为switch语句的功能。switch是一种条件语句,它将针对多种可能的情况评估表达式,并根据匹配的情况执行一个或多个代码块。switch语......
  • 面向对象数据库和NoSQL
    先来说说对象数据库。定义参见维基:http://zh.wikipedia.org/zh/%E5%AF%B9%E8%B1%A1%E6%95%B0%E6%8D%AE%E5%BA%93一个数据库的持久性整体规划通常都是不成套的。各种ORM(对......
  • [Javascript] Singleton Pattern
    Source:https://javascriptpatterns.vercel.app/patterns/design-patterns/singleton-patternWiththeSingletonPattern,werestricttheinstantiationofcertainc......
  • JavaScript基础回顾知识点记录7-事件补充说明2
    js中鼠标滚轮事件offsetWidth/offsetHeight-对象的可见宽度/高度clientWidth/clientHeight-内容的可见宽度/高度scrollWidth/scrollHeight......
  • JavaScript快速入门-06-函数
    6函数6.1函数定义  函数可以封装语句,然后在任何地方、任何时间执行。JavaScript中的函数使用function关键字声明,主要由函数名、函数参数和函数体组成。其基本语法......