对Javascript对象属性/字段感到困惑
Confused about Javascript object properties/fields
我正在努力学习将面向对象的原理应用到我的Javascript编程中,但我对对象"字段"或"方法"在Javascript中的工作方式感到困惑。我知道属性可以动态地分配给Javascript对象(函数(,但我似乎不明白如何在实践中应用这一点。
考虑以下示例代码片段:
<head>
<script type="text/javascript">
var foo = function()
{
this.bar = "abc";
alert(this.bar);
}
foo.start = function()
{
alert(foo.bar);
}
</script>
</head>
<body>
<div align='center'>
<input type="submit" onclick = "foo(); foo.start();">
单击提交按钮时,会显示消息abc
,然后是undefined
。
这个输出与我在这里的理解和意图相反。我的理解是,行this.bar = "abc"
创建了foo
对象的一个新的bar
属性(或字段(,并为其指定值"abc"
。然而,当我调用foo
的另一个方法时,bar
属性似乎已经消失了。
那么,当我在foo.start
中访问foo.bar
时,为什么它是未定义的呢?
JavaScript函数在一个上下文中执行,该上下文确定this
在函数内部引用什么。当您创建一个新的foo
对象时,如下所示:
var f = new foo();
则CCD_ 13指代新对象。但是,当省略new
运算符时,如下所示:
var f = foo();
则上下文是全局CCD_ 15对象。在这种情况下,这行:
this.bar = "abc";
设置window
的属性值,而不是新对象。
相关文章:
- JavaScript 检查隐藏字段中的值并将其设置为隐藏字段值
- 编辑图像字段javascript验证空白图像不插入
- 如何在客户端填写PDF字段(Javascript)
- 如何通过 JSP 代码将隐藏字段(Javascript)插入 XML
- 为特定的隐藏字段javascript/jquery赋值
- 将金额分配给不同的字段javascript
- 静态私有字段Javascript
- 设置隐藏值字段 Javascript 的值
- 从输入字段Javascript获取值
- SPGridView字段-javascript:window.open问题
- Wordpress自定义字段-Javascript中的CSS
- 删除生成的字段javascript
- 在一个字段javascript上缺少零美分
- 隐藏默认文本在一个字段- Javascript
- Django Rest框架的许多相关字段- Javascript正确格式的int列表
- 检索createdAt字段Javascript
- 用于更改字段javascript中的值的函数
- 价格字段Javascript和Jquery验证
- 使用 onchange 在第二个字段 javascript 中输入数据
- 覆盖公共字段 JavaScript 原型