首页 > 编程语言 >[JavaScript]关于prototype继承

[JavaScript]关于prototype继承

时间:2023-02-06 18:33:38浏览次数:37  
标签:__ object 继承 JavaScript 对象 原型 prototype

When it comes to inheritance, JavaScript only has one construct: objects. Each object has a private property which holds a link to another object called its prototype. That prototype object has a prototype of its own, and so on until an object is reached with null as its prototype. By definition, null has no prototype, and acts as the final link in this prototype chain. It is possible to mutate any member of the prototype chain or even swap out the prototype at runtime, so concepts like static dispatching do not exist in JavaScript.

每个实例对象(object)都有一个私有属性(称之为 __proto__)指向它的构造函数的原型对象(prototype)。该原型对象也有一个自己的原型对象(__proto__),层层向上直到一个对象的原型对象为 null。根据定义,null 没有原型,并作为这个原型链中的最后一个环节。

几乎所有 JavaScript 中的对象都是位于原型链顶端的 Object 的实例。

就是说,JavaScript 中的对象都是继承而来,所有的对象都是由一个最简单的对象不断增加特定的功能而形成的。

使用prototype添加属性和方法

Before:

//创建类
function Duck(){
  name = "RoastDuck";
  age = 18;
  hobby = "eat";
}
//添加属性
Duck.prototype.home("China");
//添加方法
Duck.prototype.action=function(){
  console.log("Roast is enoding");
};

After:

function Duck(){
  name = "RoastDuck";
  age = 18;
  hobby = "eat";
  //添加的属性
  home = "China";
  //添加的方法
  action = function(){
    console.log("Roast is enoding");
  };
}


标签:__,object,继承,JavaScript,对象,原型,prototype
From: https://www.cnblogs.com/Rev-RoastDuck/p/17096385.html

相关文章

  • 继承--Java基础047
    /*面向对象的三大特征:1.封装2.继承3.多态.继承:继承是通过关键字extends体现的。继承的格式:class类名1extends类名2{}继承要注意的事项:1.千万不要为了......
  • Javascript(es2016) import和require用法和区别
    写个简单js文件,假设名字为:lib.js。假设内容如下:exportconstsqrt=Math.sqrt;exportfunctionsquare(x){returnx*x;}exportfunctiond......
  • [JavaScript]eval
    eval()eval() 函数会将传入的字符串当做JavaScript代码进行执行。参数string一个表示JavaScript表达式、语句或一系列语句的字符串。表达式可以包含变量与已存......
  • [JavaScript]变量提升
    什么是变量提升?简单来说,就是JavaScript在执行程序时,会先把变量声明这一操作提前。换句话来说,就是不会在程序执行过程中声明变量。例子:functionfn(){console.log(nam......
  • 直播app开发搭建,纯javascript实现图片放大镜效果
    直播app开发搭建,纯javascript实现图片放大镜效果1、放大镜组成1)目标图片,一般是小图 2)鼠标移动上去的一个等比例小框框图 3)弹窗显示一个等比例的大图 2、实现分......
  • JavaScript实现拖动元素交换位置
     通过JavaScript实现拖动元素交换位置(如下图所示)实现方式HTML5提供了draggable属性,当它的值为true时,表示元素可拖动。在实现之前,首先我们需要明白两个单词的意思......
  • javascript之预编译
        Javascript按照<script>段的方式进行预编译处理相关的代码段,并且按照先预定义变量,再预定义函数的方式进行预编译!而且无论变量/函数在段中的任何地点进行显式......
  • javascript提交示例
    <td>@Html.ActionLink("编辑","Edit",new{id=1})<text>|</text>@Html.ActionLink("删除","Delete",new{id=2})<text>|</text><ahref="javascrip......
  • JavaScript中和动画相关的几个事件
    JavaScript中有以下几种与动画相关的事件:requestAnimationFrame这个事件可以在浏览器重绘之前触发,通常用于制作高性能动画。下面是一个使用requestAnimationFrame来制作简......
  • JavaScript 数组常用方法大全
    前言大家好,我是CoderBin,本次总结了JavaScript中关于数组的一些常用操作,想学习其他方法或者深入学习这些方法的可点击前往MDN-Array。希望对大家有所帮助,谢谢!如果文中有不......