42 lines
1.3 KiB
HTML
42 lines
1.3 KiB
HTML
<html>
|
|
<head><title>Verify instanceof checking</title></head>
|
|
<body>
|
|
<h1>Check instanceof behaviour</h1>
|
|
<table cellpadding=2 border=1>
|
|
<tr><th>A</th><th>instanceof</th><th>B</th><th>?</th><th>Correct?</th></tr>
|
|
<noscript><p>Javascript is disabled</p></noscript>
|
|
<script>
|
|
var checks = [
|
|
[ "window", "Window", true ],
|
|
[ "document", "HTMLDocument", true ],
|
|
[ "document.head", "Node", true ],
|
|
[ "document.getElementsByTagName(\"body\")", "HTMLCollection", true ],
|
|
[ "document.body", "Window", false ],
|
|
[ "EventListener", "Object", undefined ],
|
|
];
|
|
|
|
for (var _check in checks) {
|
|
var check = checks[_check];
|
|
document.write("<tr>");
|
|
document.write("<td>" + check[0] + "</td><td>instanceof</td><td>" + check[1] + "</td>");
|
|
try {
|
|
var A = eval(check[0]);
|
|
var B = eval(check[1]);
|
|
var C = check[2];
|
|
var V = A instanceof B;
|
|
var OK = V == C;
|
|
document.write("<td>" + V + "</td><td>" + (OK ? "YES" : "<b style=\"color: red\">NO</b>") + "</td>");
|
|
} catch (e) {
|
|
if (check[2] == undefined) {
|
|
document.write("<td>" + e + "</td><td>YES</td>");
|
|
} else {
|
|
document.write("<td colspan=2><b style=\"color: red\">" + e + "</b></td>");
|
|
}
|
|
}
|
|
document.write("</tr>");
|
|
}
|
|
</script>
|
|
</table>
|
|
</body>
|
|
</html>
|