【发布时间】:2016-09-29 12:41:19
【问题描述】:
我正在开发一个使用结合了 HTML、CSS 和 JS 的 node_webkit 的应用程序。在我的应用程序的一部分中,我想更新 Array.prototype 以便我可以轻松访问数组的最后一个元素。代码是:
if (!Array.prototype.last){
Array.prototype.last = function(){
return this[this.length - 1];
};
}
如果我只运行运行良好且符合预期的 js 文件。如果我将该 js 文件包含到 HTML 文档中,则数组的原型似乎保持不变,并且出现错误:
data.last 不是函数
我是否必须更改某些内容以便我可以从 HTML 文件正常运行我的代码,或者这根本不起作用,我必须采取很长的路要走,并使用 array[array.length - 1] 访问每个数组?
我用来包含脚本的 HTML 代码是:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../CSS/Cocktails.css">
<title>Cocktails</title>
<script type="text/javascript" src="../JavaScript/Cocktail.js"></script>
</head>
<body>
/* some elements, that don't use the script yet */
</body>
</html>
【问题讨论】:
-
我认为你的意思是在 ecmascript (javascript) 中更改 Array.prototype。您还没有发布您用来包含脚本的 HTML 文档(这可能是加载顺序问题)...您可以分享一下吗?另外,您如何在 js 的 HTML 版本中声明
data? -
errr ...分享ACTUAL html,以便确定加载顺序,您的问题仍然无法分析。因为从表面上看它应该可以工作。
-
啊,没关系,我想我知道你的问题可能是什么。我会发布答案
-
您正在服务器端创建
Array.prototype.last(),但很可能不在客户端。您应该检查您的 Cocktail.js 脚本是否真的包含Array.prototype.last()的条件定义,或者检查您的data是否真的是一个数组。
标签: javascript html arrays node.js node-webkit