gpt4 book ai didi

javascript - 在可编写脚本的浏览器插件中处理只读/只写属性的最佳方法

转载 作者:行者123 更新时间:2023-11-30 23:51:01 25 4
gpt4 key购买 nike

编写一个可通过 JavaScript 编写脚本的嵌入式跨浏览器插件,我不确定如何以最佳方式处理只读和只写属性。

是否更常见或更直观

  • 在写入时静默丢弃值以进行只读
  • 返回只写的虚拟值

或到

  • 指示浏览器出现故障,很可能导致脚本错误

建议?或者有没有像 flash 这样广泛使用的插件的好例子?

更新:
我对只写属性是否有用不感兴趣 - 我不喜欢这个想法,但出于历史原因我必须支持它。

最佳答案

现有做法如下 Postel's Law :“在你所做的事情上要保守;在你从别人那里接受的事情上要自由。”

在这种情况下,这意味着您的插件文档应该显示正确的用法,但它应该容忍不良的使用。通过研究 HTML 与之前或之后发明的所有其他超文本系统的成功,这种方法的智慧应该是显而易见的。大多数失败都是非常束缚和纪律的设计,最小的错误都会导致文档不可读。

正如人们经常编写错误的 HTML 一样,您的一些用户可能会向您传递错误的输入。假设您有一个 bool 属性,记录为“true”或“false”。如果你得到1或0怎么办?它应该崩溃,还是只是应付?波斯特尔定律说,应对。如果你得到-1怎么办?再次应对,例如选择使用非零为“真”的 C 规则。回答您的具体问题,如果 bool 属性被记录为只读,并且有人给它一个值,您的插件应该直接吃掉它。

所有这些特殊情况处理意味着您需要编写更多代码,但使您的插件更易于使用,因此更有可能流行。

Postel 定律的另一半意味着只读属性应该只具有记录值。再次以 bool 属性为例:如果您的文档说该值是“true”或“false”,则永远不要返回“1”,即使 JavaScript 将其理解为真值。遵循您自己的规范,即使您编写的代码让其他人违反它而不受惩罚。

顺便说一句,我不喜欢只写属性的想法。您应该改为创建这些函数。即:

pluginInstance.setWriteOnlyProperty(5);

不是:

pluginInstance.writeOnlyProperty = 5;

只读变量是很好理解的东西。只写变量很少见。我唯一一次见过它是在小型 8 位微 Controller 中,其原因很明显,是由于硬件设计。我认为软件中没有这么好的借口。

关于javascript - 在可编写脚本的浏览器插件中处理只读/只写属性的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1528961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com