网站搜索
我正在尝试将原型继承应用到 Javascript 中的一个函数。这一切都很简单,甚至在维基百科的 Javascript 条目中也有描述。如果我的属性是简单的 Javascript 类型,它是可以工作的:
function Person() { this.age = 0; this.location = { x: 0, y: 0, absolute: false }; }; function Employee() {}; Employee.prototype = new Person(); Empl 阅读更多 →即使作为一个有些经验的 JavaScript 开发者,我仍然经常对对象的浅拷贝与深拷贝感到惊讶。
对于主要的对象类型,什么时候 JavaScript 值是按引用复制而不是按值复制,有什么经验法则吗?例如,我知道字符串值总是按值而不是按引用复制。
在 JavaScript 中,所有对象都是以“引用”的方式存储和传递的。
var a = { v: 'a' }, b = { v 阅读更多 →
如果我有内联 SVG,包括一个已被缩放的元素...
<g transform="scale(sX,sY)"> <rect id="myElement" x="107" y="32" width="245" height="31" stroke="#C6C3C6" stroke-width="1px" /> </g>... 或者位于具有 viewBox 属性的 <svg> 元素中:
阅读更多 →
我的数组是这样填充的:
updateLabels: function () { var diagrams = _stage.diagramLayer.getChildren(); var componentIDs = new Array(); for (var index = 0; index < diagrams.length; index++) { componentIDs.push(diagrams[index].componentID) 阅读更多 →
我有面向对象编程(OOP)的背景。我开始大量使用 JavaScript。随着项目的增长,维护它变得越来越困难。在 Java 中,我应用 OOP 原则来保持事务的可控性。我应该如何处理 JavaScript,我应该学习什么来保持 JavaScript 应用程序的可控性?
你也可以将面向对象编程(OOP)原则应用于 Javascript 开发。Javascript 使用原型继承,但那只是实现细节。概念仍然是相同的。你熟悉的大多数概念在 Javascript 中都有直接对应的类比。
其他经过验证的方法也适用:
1) 保持 DRY -- 不要重复自己。重复的代码总是有害的。 2)
阅读更多 →
在使用 confirm() 方法时,如何防止表单文件输入元素在 onclick DOM 事件中发生变化?
在示例中,我想给用户提供一个机会,通过询问他们是否希望确定|取消,从而不会丢失文件输入元素的值,如果他们点击取消,则不应显示文件对话框窗口。
XHTML
<input name="post_file" onclick="images_change();" type="file" value="" /> 阅读更多 →如何从一个 Javascript 对象中移除所有属性?
例如;如果我有以下的 'class',我如何执行重置并移除它的所有属性:
function MyObject() { this.type="blah"; this.name="kkjkj"; } MyObject.prototype.clearAttribs = function() { // I want to remove name, type etc from 'this' // Maybe I can do the following? for (var key in this) delete this[key]; }你的代码看起来没问题。由于 delete 不会 删除原型上的属性,你甚至不需要使用 hasOwnProperty
阅读更多 →
我有两个不同的 JSP,由 Java 后端连接在一起并发送回同一个渲染的 HTML 页面。
每个 JSP 都有自己 `<script>` 块,并在该块内定义函数:
JSP #1:
<script type="text/javascript"> function blah() { ... } </script>JSP #2
<script type="text/javascript"> function foo() { blah(); 阅读更多 →
我想我已经在脑海中理清了区别,但我只是想确认一下。
在道格拉斯·克罗克福德的页面《JavaScript中的原型继承》中,他说
在原型系统中,对象从对象继承。然而,JavaScript 缺少执行该操作的运算符。相反,它有一个 new 运算符,使得 new f() 产生一个继承自 f.prototype 的新对象。
我并不真正理解他在那句话中想表达的意思,所以我做了一些测试。在我看来,关键的区别是,如果我在一个纯原型系统中基于另一个对象创建一个对象,那么所有父级的成员应该在新对象的原型上,而不是在新对象本身
阅读更多 →现在有用 HTML5 在不使用浏览器插件(所以没有 Flash 或 Java)也不使用短期解决方法的情况下,将在画布中创建的图像复制到剪贴板的方法吗?
复制到剪贴板将由 JavaScript 发起,但需要用户确认或弹出对话框也不是问题。
在 Windows 和 Linux 上无效,或至少在 Chrome 和 Firefox 上无效的解决方案对我没有兴趣。
理想情况下,我更希望有一种解决方案,不需要强制显示图像(该图像是通过 document.createElement('canvas') 在内存中创建的),但这不是绝对要求。
据我所知,剪贴板 API 是该领域中唯一的规范。我从未使用过它,也不知道它的支持程度有多广,但我怀疑不是很广。根据这个快速且简单的测试,当前版本的 Chrome 和 Firefox 会触发 copy 事件。我认为必须由用户发起复制操作(例如,你说“按 Ctrl+C 复制”)。
阅读更多 →