首页 > web前端 > js教程 > 如何在 JavaScript 对象文字中最好地引用对象键在其自己的函数中?

如何在 JavaScript 对象文字中最好地引用对象键在其自己的函数中?

Susan Sarandon
发布: 2024-11-28 01:48:11
原创
404 人浏览过

How to Best Reference Object Keys Within Their Own Functions in JavaScript Object Literals?

JavaScript:使用对象文字在自己的函数中引用键

问题:
使用对象时JavaScript 中的文字通常包含对对象属性进行操作的函数。但是,有两种方法可以在这些函数中引用对象:使用 this 或显式使用对象文字名称。本文探讨了每种方法的含义。

解决方案:

使用此:

var obj = {
    key1: "it",
    key2: function(){return this.key1 + " works!"}
};
登录后复制
  • 使用 this 引用函数内的对象可确保函数始终访问正确的对象,无论该对象如何
  • 但是,如果函数是从对象中提取的(例如,分配给变量或作为参数传递),则 this 可能不会按预期引用该对象。

使用对象文字名称:

var obj = {
    key1: "it",
    key2: function(){return obj.key1 + " works!"}
};
登录后复制
  • 显式使用对象字面量名称(例如 obj)在函数内引用对象可确保函数始终能够访问该对象。
  • 但是,这种方法可能会导致对象的意外修改或覆盖。如果创建对该对象的另一个引用并分配不同的值,该函数将继续引用原始对象。

潜在问题:

  • 使用此:当从对象中提取函数时,this 可能引用全局对象(窗口中的浏览器)而不是预期的对象。
  • 使用对象文字名称:当对象被重新分配或修改时,函数可能会引用原始对象而不是更新后的对象一。

建议:

  • 根据预期用途选择方法:如果函数主要用于用作对象的方法。如果函数可能被提取并重用,请使用对象字面量名称。
  • 使用 ES6 const 或闭包: 在 ES6 中,使用 const 来防止对象被重新分配。在 ES5 中,使用闭包创建本地作用域并存储对象。
  • 将函数绑定到对象:使用 obj.key2 = obj.key2.bind(obj) 来确保该函数始终引用正确的对象。

以上是如何在 JavaScript 对象文字中最好地引用对象键在其自己的函数中?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板