J
Jonathan Dodds
I have two files in an ASP project I created with VI 6.0: circle.inc and
default.asp.
circle.inc:
// circle.inc
function Circle (xPoint, yPoint, radius) {
this.x = xPoint; // The x component of the center of the circle.
this.y = yPoint; // The y component of the center of the circle.
this.r = radius; // The radius of the circle.
}
Circle.prototype.pi = Math.PI;
Circle.prototype.area = function () {
return this.pi * this.r * this.r;
}
default.asp:
<%@ language="jscript" %>
<html>
<head>
<script language="javascript" runat="server" src="circle.inc"></script>
</head>
<body>
<%
var aCircle = new Circle(5, 11, 99);
for (var x in aCircle)
{
Response.Write(x + " = " + aCircle[x] + " (" + typeof(aCircle[x]) +
")<br>");
}
%>
</body>
</html>
I expect output that look like this:
area = function () { return this.pi * this.r * this.r; } (function)
pi = 3.141592653589793 (number)
x = 5 (number)
y = 11 (number)
r = 99 (number)
This works when the circle constructor and prototype are in the default.asp
file but when I move the code to the circle.inc include file I lose the
members that are added by the prototype. i.e.:
x = 5 (number)
y = 11 (number)
r = 99 (number)
When I use the include file it finds the constructor but loses the
prototype? What the heck!?
I tried using a #include directive instead of the script element. It made no
difference. I searched the MSDN to see if there was some mention of this
issue. I didn't find anything relevant.
Is this a bug or am I including this file incorrectly?
Thanks.
default.asp.
circle.inc:
// circle.inc
function Circle (xPoint, yPoint, radius) {
this.x = xPoint; // The x component of the center of the circle.
this.y = yPoint; // The y component of the center of the circle.
this.r = radius; // The radius of the circle.
}
Circle.prototype.pi = Math.PI;
Circle.prototype.area = function () {
return this.pi * this.r * this.r;
}
default.asp:
<%@ language="jscript" %>
<html>
<head>
<script language="javascript" runat="server" src="circle.inc"></script>
</head>
<body>
<%
var aCircle = new Circle(5, 11, 99);
for (var x in aCircle)
{
Response.Write(x + " = " + aCircle[x] + " (" + typeof(aCircle[x]) +
")<br>");
}
%>
</body>
</html>
I expect output that look like this:
area = function () { return this.pi * this.r * this.r; } (function)
pi = 3.141592653589793 (number)
x = 5 (number)
y = 11 (number)
r = 99 (number)
This works when the circle constructor and prototype are in the default.asp
file but when I move the code to the circle.inc include file I lose the
members that are added by the prototype. i.e.:
x = 5 (number)
y = 11 (number)
r = 99 (number)
When I use the include file it finds the constructor but loses the
prototype? What the heck!?
I tried using a #include directive instead of the script element. It made no
difference. I searched the MSDN to see if there was some mention of this
issue. I didn't find anything relevant.
Is this a bug or am I including this file incorrectly?
Thanks.