/
foo.js
48 lines (42 loc) · 884 Bytes
/
foo.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// original source code
(function() {
"use strict";
/**
* @type {constructor}
*/
function Point(x, y) {
this._x = x;
this._y = y;
}
/**
* @param {!Point}
* @return {!number}
*/
Point.prototype.distance = function (other) {
/**
* @param {!number} x
* @return {!number}
*/
function pow(x) {
return x * x;
}
return Math.sqrt(
pow(this._x - other._x) +
pow(this._y - other._y));
};
/**
* @return {!string}
*/
Point.prototype.toString = function () {
return "(" + this._x + "," + this._y + ")";
};
/** @type {!Point} */
var one = new Point(-2, 1);
/** @type {!Point} */
var another = new Point(1, 5);
console.log("Distance of " + one +
" to " + another + ":");
console.log(one.distance(another));
}());
// vim: set expandtab:
// vim: set tabstop=2: