Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
Javascript中的原型概念,是否正确?_Javascript_Prototype - Fatal编程技术网

Javascript中的原型概念,是否正确?

Javascript中的原型概念,是否正确?,javascript,prototype,Javascript,Prototype,myFather使用从Person.prototype继承 \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu这个Person构造函数继承自函数。prototype,这个函数继承自对象。prototype,这就是为什么说javascript中的一切本质上都是对象 我对这件事的理解对吗?我已经评论了我在JS原型中理解的内容。此时此刻

myFather使用从Person.prototype继承
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu这个Person构造函数继承自
函数。prototype
,这个函数继承自
对象。prototype
,这就是为什么说javascript中的一切本质上都是对象


我对这件事的理解对吗?我已经评论了我在JS原型中理解的内容。此时此刻,我不知道这个概念的实际用途。也许当我了解更多信息时,我会看到它的一些用途。

在本例中,孩子继承了父亲的姓氏:

班长{
构造函数(){
this.lastName='Singh';
这个年龄=50岁;
这个。性别=‘男性’;
this.eyecolor='black';
}
}
班上的孩子比父亲长{
建造师(姓名、性别、年龄){
超级();
this.firstName=名称;
这个。性别=性别;
这个。年龄=年龄;
}
}
const myFather=新父亲();
console.log(我的父亲);//{姓:'Singh',年龄:50岁,性别:'Mean',眼睛颜色:'black'}
康斯特本人=新生儿('Saurav','male',20岁);

console.log(我自己的名字,我自己的名字);//Saurav Singh
是的,您理解得正确。这个概念在Javascript中称为

JavaScript对象具有指向原型对象的链接。尝试访问对象的属性时,不仅会在对象上查找属性,还会在对象的原型、原型的原型上查找属性,依此类推,直到找到具有匹配名称的属性或到达原型链的末端

基本上,这将一直返回到对象对象,所有Javascript类型都从该对象继承,其
\uuuuuu proto\uuuu
为空


请注意,存在两个基本相同的属性:
\uuuuu proto\uuuu
prototype
。区别在于只有函数具有
prototype
属性,而所有对象都具有
\uuuuuuu
属性。
\uuuuu proto\uuuuu
属性是非标准的,但大多数浏览器都有它,所以它可以保存以供使用。

是的,你是对的。为什么你要这样做呢
(this.xxxx=name),…
ES6现在有了隐藏原型的类,看起来更像其他面向对象的语言。通常你不会将eyecolor附加到原型上,这使得所有的人都有黑色的眼睛。您将攻击实例的eyecolor,以便只有个人实例具有黑眼睛。原型通常用于应用于该对象的每种类型的方法和数据。@GirkovArpa它是如何过时的?类在幕后使用相同的技术,只是添加了一些香料。我是否应该添加一个子元素来说明eyecolor的继承?问题是关于底层原型概念,而不仅仅是语法。谢谢,伙计。感谢您的时间。是的,请添加孩子,而不是眼睛颜色,可能是其他东西。我更新了这个例子,显示孩子继承了父亲的姓氏。这是一个尴尬的例子,因为您可能不会像这样使用它,但它确实说明了
如何扩展
的工作原理。
function Person(name, age, gender) {
    (this.name = name), (this.age = age), (this.gender = gender);
}
Person.prototype.eyecolor ="black";

var myFather = new Person("Singh", "50", "Male");
console.log(myFather.eyecolor);
console.log(myFather);
console.log(Person);