香港六马会开奖结果-六合彩特码资料-本港台最快开奖直播

[2019]让您放心游戏,提供六合彩特码资料最丰厚回馈!,本港台最快开奖直播是为您电脑安全以及资金安全的考虑,所以说压实向感受娱乐首先应该进下载时必不可少的。

理解JavaScript的原型属性
分类:操作系统

明白JavaScript的原型属性

2016/06/21 · JavaScript · 2 评论 · 原型

本文由 伯乐在线 - alvendarthy 翻译,sunshinebuel 校稿。未经许可,幸免转发!
西班牙语出处:bytearcher。接待参与翻译组。

理解 JavaScript 的prototype质量不太轻便。你恐怕知道它同面向对象编程(OOP)和目标世襲有关,但未必对其本事原理非常驾驭。

原型继承

面向对象编制程序能够通过众多路线完毕。别的的言语,比方Java,使用基于类的模型达成: 类及对象实例差距对待。但在 JavaScript 中未有类的定义,替代它的是生机勃勃体皆对象。JavaScript 中的世襲通过原型世襲完毕:八个目的直接从另意气风发对象世袭。对象中富含其继续系列中祖先的援用——对象的 prototype 属性。

class 关键字是在 ES6 中第三回引进 JavaScript 的。其实,它并从未为面向对象继承引入新模型, class 关键字通过语法糖,完结了本文介绍的原型性情和布局函数。

JavaScript 达成持续的言语特色

以下语言特色合作达成了 JavaScript 世襲。

  • 当尝试访问 JavaScript 对象中不设有的习性时,解析器会查找相配的目的原型。比方调用 car.toString(),如果 car 没有 toString 方法,就能调用 car 对象的原型。 这一个查找进程会直接递归, 直到寻找到十一分的原型恐怕世袭链尽头。
  • 调用  new Car() 会成立二个新的靶子,并开头化为 Car.prototype。 那样就同意为新对象设置原型链。需求小心的是,new Car() 只有当  Car 是函数时才有含义。 此类函数即所谓布局函数。
  • 调用对象的多个成员函数时, this 的值被绑定为当下目的。举例调用 "abc".toString()this 的值被设置为 "abc",然后调用 toString 函数。该技能扶持代码重用:同样的代码,可在 this 为各类不一样的值时调用。对象的积极分子函数,也被喻为对象的办法。

举个栗子

作者们用面向对象编制程序,完毕二个划算矩形周长的例子。

JavaScript

function Rectangle(x, y) { this.x = x; this.y = y; } Rectangle.prototype.perimeter = function() { return 2 * (this.x + this.y); } var rect = new Rectangle(1, 2); console.log(rect.perimeter()); // outputs '6'

1
2
3
4
5
6
7
8
9
10
11
function Rectangle(x, y) {
    this.x = x;
    this.y = y;
}
 
Rectangle.prototype.perimeter = function() {
    return 2 * (this.x + this.y);
}
 
var rect = new Rectangle(1, 2);
console.log(rect.perimeter()); // outputs '6'

率先,我们定义结构函数 Rectangle。 依照正规,大家大写布局函数名首字母,申明它能够用 new 调用,以示与任何常规函数的不同。构造函数自动将 this 赋值为风度翩翩空对象,然后代码中用 xy 属性填充它,以备后用。

然后, Rectangle.prototype 新添一个通过 xy 属性总括周长成员函数。 注意 this 的应用,在分化的对象中,this 会有例外的值,那几个代码都能够健康工作。

最后, 四个名称为 rect 的靶子创立出来了。 它继续了 Rectangle.prototype, 我们得以调用 rect.perimeter(), 然后将结果打印到调整台。

prototype 属性名称带给的误解

有局地关于 JavaScript 的原型的误会。 多少个目的的原型与指标的 prototype 属性实际不是叁遍事。 前面多个用于在原型链中相配不设有的习性。前者用于通过 new 关键字创设对象,它将作为新创设对象的原型。 掌握二者的出入,将帮扶您根才干略 JavaScript 中的原型性格。

在大家的事例中, Rectangle.prototype 是用 new Rectangle() 成立出来目标的原型, 而 Rectangle 的原型实际上是 JavaScript 的 Function.prototype。(子对象的原型是父对象的 prototype 属性)

指标中保留原型的变量,也被誉为内部原型援用(the internal prototype link),历史上也曾称之为 __proto__ ,对这一个称号始终存在有的争持。 更标准的,它可以被称之为 Object.getPrototypeOf(...) 的再次来到值。

2 赞 5 收藏 2 评论

关于小编:alvendarthy

图片 1

四个热爱生活的玩意儿! 个人主页 · 小编的作品 · 16

图片 2

本文由香港六马会开奖结果发布于操作系统,转载请注明出处:理解JavaScript的原型属性

上一篇:没有了 下一篇:没有了
猜你喜欢
热门排行
精彩图文