显然我无法理解如何在 JS 中使用简单的 OO 模式。希望有人能给我一个提示,我哪里出错了。
这是一个简短的测试。当加载到浏览器中时,开发控制台会显示两件事:
未定义
作为Element.Display
的值和因此,对
Board.Display
的分配明显失败
有趣的细节:Element
的调试输出确实包含Display
...
我的问题:为什么这不起作用?
<小时/>文件“test.html”:
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="test.js"></script>
</head>
<body>
Hello world!
</body>
</html>
文件“test.js”:
Element: {
Display = function() {
// declare something
// do something
} // Element.Display
}; // Element
var Board = function() {
// debug output
console.log(Element);
console.log(Element.Display);
// declare something
Display: new Element.Display();
// do domething
}();
<小时/>
上面的例子在 jsfiddle.net: Example
最佳答案
元素:
是一个标签。
您想要将一个对象分配给一个变量:
元素=
不过,您应该先声明变量。
var 元素 =
然后我们就有了这个。
Display = function() {
// declare something
// do something
} // Element.Display
在解决最后一个问题之前,它是有效的(因为它是对 block 内全局的函数赋值)。
解决该问题后,它就会变成错误。
在对象字面量内的属性名称和属性值之间使用 :
。
你的代码的后半部分也有问题。
var Board = function() {
// Also a label
Display: new Element.Display();
// there is no return statement in this function
// so you are assigning undefined to Board
}();
关于javascript - JS OO 基础知识以及为什么这不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21727437/