Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类和原型。新手如何解释它们 来自C++、Java-的背景,我对类有点了解,但是用原型替换类(如JavaScript)似乎是完全不同的思维过程。 对于像我这样的新手来说,这可能真的很难理解,所以我将展示我自己的观察结果——这是我在做了一些解构之后得到的_Javascript_Java_C++_Class_Prototype - Fatal编程技术网

类和原型。新手如何解释它们 来自C++、Java-的背景,我对类有点了解,但是用原型替换类(如JavaScript)似乎是完全不同的思维过程。 对于像我这样的新手来说,这可能真的很难理解,所以我将展示我自己的观察结果——这是我在做了一些解构之后得到的

类和原型。新手如何解释它们 来自C++、Java-的背景,我对类有点了解,但是用原型替换类(如JavaScript)似乎是完全不同的思维过程。 对于像我这样的新手来说,这可能真的很难理解,所以我将展示我自己的观察结果——这是我在做了一些解构之后得到的,javascript,java,c++,class,prototype,Javascript,Java,C++,Class,Prototype,javascript中的类是一个相对较新的概念,来自java背景的程序员最好以他们熟悉的方式进行解释。 请启发我,因为我注定会犯错,我自己作为新手会错过重要的一点。以下是我的观察结果-。启发我,因为我目前缺乏很多知识,需要变得更好 类别: 1.由函数和变量组成 2.可以使用“扩展”关键字继承其内容 3.我们有家长班,孩子班 4.对象是使用构造函数(即函数)创建的对象 5.对象继承构造函数来自的类的所有权限 6.对象继承了对类中存在的变量和函数进行遍历的能力 7.一个对象可以继承另一个类的权限,

javascript中的类是一个相对较新的概念,来自java背景的程序员最好以他们熟悉的方式进行解释。
请启发我,因为我注定会犯错,我自己作为新手会错过重要的一点。

以下是我的观察结果-。启发我,因为我目前缺乏很多知识,需要变得更好


类别:

1.由函数和变量组成

2.可以使用“扩展”关键字继承其内容

3.我们有家长班,孩子班

4.对象是使用构造函数(即函数)创建的对象

5.对象继承构造函数来自的类的所有权限

6.对象继承了对类中存在的变量和函数进行遍历的能力

7.一个对象可以继承另一个类的权限,即除其自身恩人(=类)之外的其他类

8.一个阶级本身没有权力,可以很好地描述为一个“群体”或一个文明的名字。这个名字只是出于外交原因才需要的 e、 g:“扩展”正在加载。 除此之外,所有做任何事情的能力都存在于变量、函数中


原型:

1.原型是一个对象->最初属于功能对象的对象。 是的,“一开始只有一个功能”, 是的,其余的JavaScript函数都是从它派生而来的

2.函数也可以是“构造函数”,它通常被称为“内置对象”

方法只不过是一个变量/属性/对象与函数的组合

4.原型只是一个包含函数和更多属性的属性。这就是属性如何变成“不仅仅是属性”——它变成了一个对象


5.但是这个对象“原型”是特殊的,你看。wise old对象将其提供给所有内置的、用户定义的函数、自由使用其内容的对象以及其继承能力

原型遗传:

一个对象可能是另一个对象的原型。我们可以通过设置prototype([[proto]])属性来实现这一点:

var parent={
  name:"example"
}

var child={
  age:16
}

Object.setPrototypeOf(child,parent);
child.name="child";
child.name;//child
parent.name//example
但为什么原型有用呢?让我们考虑两种情况:

  • 我们设置对象的属性:

  • 属性将添加到该对象中
  • 我们尝试获取某个属性的值:

    var parent={
      name:"example"
    }
    
    var child={
      age:16
    }
    
    Object.setPrototypeOf(child,parent);
    
    child.name="child";
    child.name;//child
    parent.name//example
    
  • 检查当前对象是否具有该属性,如果是,则返回其值,如果不是,则继续

  • 当前对象设置为对象原型,重复步骤1

  • 如果Object.prototype有点未定义(我们到达了某种全局对象),则返回undefined

  • 现在让我们以上面的代码为例:

      child.name;//"example" as its part of the prototype
      child.age;//its own property
      parent.name;//"example"
      parent.age;//undefined
    
    当我们设置属性时:

    var parent={
      name:"example"
    }
    
    var child={
      age:16
    }
    
    Object.setPrototypeOf(child,parent);
    
    child.name="child";
    child.name;//child
    parent.name//example
    
    这就是继承的基本原理。这很容易,也不太难。要创建实例,可以使用Object.create,也可以使用上面示例中所示的setPrototypeOf(它非常新):

    高级原型设计:

    但是上面的代码缺少什么呢?嗯,我们需要构造函数 因此,我们可以简单地创建一个函数,将对象(称为工厂函数)与原型集组装在一起:

    function createChild(age){
       var child=Object.create(parent);
       child.age=age;
    }
    
    var child=createChild(15);
    
    它有一个问题:如果我们想要一个孩子怎么办

    var thomasProto=Object.create(createChild(age));
    thomasProto.name="Thomas";
    function createThomas(age,someother){
       var instanceofThomas=Object.create(thomasProto);
       //how do we set age ?
       child.someother=someother
    }
    
    然而这并不是很简单,这就是为什么引入了新的构造函数

    它是这样做的:

  • 以function.prototype作为原型创建新对象

  • 将此作为新对象调用函数

  • 3:返回新对象

    e、 g:

    原型链是:

    child -> parent.prototype -> Object -> null
    
    JS中的类继承


    JS中没有类继承。只有一个类语法提供了另一种创建原型继承的方法。

    看看,感谢您的努力,dudebetter:prototype属性指向另一个对象。当objectts键解析为值时,它首先检查当前对象是否具有该值,如果没有,则转到原型并重复。如果它到达!我们的观察基本上是由一两个例子组成的。继承非常复杂,在js中被广泛使用…@Jonasw我同意这一点,因为我需要学习很多东西。但是你能详细介绍一下“指向另一个对象的原型”吗?这就是你所说的原型指向另一个对象的意思,换句话说,这意味着原型也可以用于两个对象之间的继承。@yasaaMoin不是太多,而是只有“唯一”?那么这意味着原型比我想象的更强大。而且,感谢先进的原型部分,我学到了很多today@yasaaMoin函数也有原型。。是的,用js编写不使用任何原型的代码几乎是不可能的…@yasaaMoin:nope。那不是我的工作。请简单地打开另一个问题,所以,我不是唯一的JS大师在那里。。。