TOGOUTECH

javascript - 方法 Set.prototype.add 在不兼容的接收器上调用 undefined

coder 2024-05-16 原文

我根本不明白为什么会出现这个错误。

这是我在 chrome 的控制台上测试的内容:

>    var mySet;
<-   undefined

>    mySet = new Set;
<-   Set {}

>    mySet.add('foo', 'bar', 'baz')       // Worked as expected
<-   Set {"foo"}                          // just the first argument was added

>    ['bar', 'baz'].forEach(mySet.add)
X->  VM1529:1 Uncaught TypeError: 
         Method Set.prototype.add called on incompatible receiver undefined(…)

提前致谢。

最佳答案

在这种情况下,当您将 add 方法作为回调传递时,它会丢失其内部 this 上下文,因此您需要使用 bind:

['bar', 'baz'].forEach(mySet.add.bind(mySet));

['bar', 'baz'].forEach((item) => mySet.add(item));

关于javascript - 方法 Set.prototype.add 在不兼容的接收器上调用 undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37199019/

有关javascript - 方法 Set.prototype.add 在不兼容的接收器上调用 undefined的更多相关文章

  1. javascript - 如何从网页上的脚本加载外部 JSON? - 2

    我正在尝试从外部加载数据.js文件,包含一堆数据的JSON表示。我终其一生都无法弄清楚如何访问页面内的数据。我敢肯定这真的很容易,而且我错过了一些简单的东西!现在,我正在尝试:$(document).ready(function(){$.getJSON("http://api.crunchbase.com/v/1/company/xobni.js",function(data){alert(data.company_url);});});这显然是非常错误的,因为什么都没有发生。我试过将它加载到<script>中标签,但Firebug告诉我它甚至没有加载。我怎

  2. 当通过 javascript 在客户端更改值时,ASP.NET 文本框在回发后丢失值 - 2

    我正在通过javascript客户端设置文本框的值。当我刷新页面时,该值丢失了。文本框未被禁用或设置为只读。我已经阅读了将值放在隐藏字段中的建议,但我不想这样做。这似乎是一个hack。文本框在用户控件中是这样的:<divid="Row"class="RaidRow"runat="server"><asp:ButtonID="RaidRowButton"runat="server"CssClass="RaidRowButton"OnClick="RaidRowButt

  3. ASP.NET - 脚本和 css 压缩 - 2

    在ASP.NET中是否有可用的本地压缩(用于javascript/css文件)? 最佳答案 试试Chirpy。它混合、缩小和验证您的javascript、样式表和无点文件。您可以使用YUICompressor或GoogleClosureCompiler。http://chirpy.codeplex.com/或者,要了解更多信息,请查看:http://www.weirdlover.com/2010/05/22/visual-studio-add-in-for-dotless-js-and-css-files/

  4. javascript - 是否存在免费的通用 ASN.1 解码/转储/检查程序? - 2

    是否存在免费的通用ASN.1解码/转储/检查程序?我有一个可疑的ASN.1block,它可能解密失败,我想检查它以查看它是否有效,如果有效,它包含哪些元素。 最佳答案 我还使用了dumpasn1并取得了好几年的成功),然后我决定在屏幕上查看200行长的嵌套标签有点难以理解并且想要更动态的东西,所以我可以折叠树的一部分以及类似的东西。这就是我试图用我自己的asn1js创造的东西客户端javascriptASN.1解码器。它也是开源的,并使用dumpasn1巨大的“已知OID”配置文件。不尝试检测所有ASN.1格式错误,仅检测无法解码的

  5. javascript - 是否可以使用 JavaScript 从 Flash applet 拖放至外部? - 2

    假设我想要一个包含Flash小程序的网页,并且我想将一些对象拖放到网页的其余部分或拖放到该网页的其余部分,这完全可能吗?如果您知道某个网站可以做到这一点,那就加分了! 最佳答案 这个让我很感兴趣。我知道jessegavin在我去解决这个问题时发布了一些代码,但是这个代码已经过测试。我有一个super简单的工作示例,可让您在Flash之间拖动。很乱,因为我在午休时间把它放在一起。这是demo还有source基类直接取自ExternalInterfaceLiveDocs.我添加了MyButton以便按钮可以有一些文本。大多数javasc

  6. javascript - JS ES6 中 ()=> 和 _=> 和 (_)=> 的区别 - 2

    这个问题在这里已经有了答案:ESCMAScript6arrowfunctions-parenthesesaroundparameter(1个回答)Using_(underscore)variablewitharrowfunctionsinES6/Typescript(4个答案)关闭去年。我注意到,当我想编写一个粗箭头函数“=>”时,我可以执行_=>、()=>或者(_)=>和我的代码功能相同(至少对于我的用例而言)它们之间有实际区别吗?如果是,我应该使用哪一个?我一直在使用()=>的时间,但后来有一天我看到某人使用_=>的代码,我觉得它看起来很酷,所以我也开始使用它。我看到这篇中篇文章h

  7. javascript - 我尝试比较具有多个字符的拆分字符串 - 2

    varinput='HISFANTOR';varoutput=[];varchar=input.split('');for(vari=0,len=char.length;i<len;i++){if(char[i]=='H'||'K'||'Y'||'V'||'B'||'C'||'N'||'O'||'F'||'P'||'S'||'I'||'U'){

  8. javascript - react Hook : dispatch action from useEffect - 2

    我的文件夹结构:|--App|--Components|--PageA.js|--PageB.js|--PageC.js|--common-effects|--useFetching.js我正在重构我的代码以使用Reacthooks从API获取数据.我想从useFetching.js中的useEffect发送一个被saga中间件拦截的Action。仅当组件(PageA、PageB、PageC)挂载时才应分派(dispatch)此操作。我正在使用redux、react-redux和redux-saga。PageA.js:function(props){useFetching(action

  9. javascript - 为什么两个不同的键在一个对象中相互覆盖? - 2

    我分配了以下三个变量:consta={key:true}constb={key:false}constc={[a]:'1',[b]:'2'}然后当我尝试将以下内容记录到控制台时:console.log(c[a],c[b])我得到了以下信息:22当我认为我应该得到:12为什么我错了,我该如何解决? 最佳答案 对象只能有字符串(或符号)作为它们的键。如果您尝试使用非字符串,它会被转换为字符串。所以当你设置c[a]为1时,a是一个对象,这意味着它需要被转换成一个字符串。所以你最终将c["[objectObj

  10. javascript - 如何将 math.max 缩减为对象数组 - 2

    我有一个对象数组。我想从数组的数字属性中获取最大值:[{number:1000,name:"Josh"},{number:2000,name:"Joker"},{number:3000,name:"Batman"}]我正在使用此解决方案,但我一直收到NAN:constmax=arr.reduce((a,b)=>Math.max(a.number,b.number));我的目标是获取最大值,然后将其存储在变量中constx={number:3000,name:"Batman"}我如何通过reduce实现它?它似乎只适用

随机推荐

  1. javascript - 如何从网页上的脚本加载外部 JSON? - 2

    我正在尝试从外部加载数据.js文件,包含一堆数据的JSON表示。我终其一生都无法弄清楚如何访问页面内的数据。我敢肯定这真的很容易,而且我错过了一些简单的东西!现在,我正在尝试:$(document).ready(function(){$.getJSON("http://api.crunchbase.com/v/1/company/xobni.js",function(data){alert(data.company_url);});});这显然是非常错误的,因为什么都没有发生。我试过将它加载到<script>中标签,但Firebug告诉我它甚至没有加载。我怎

  2. 当通过 javascript 在客户端更改值时,ASP.NET 文本框在回发后丢失值 - 2

    我正在通过javascript客户端设置文本框的值。当我刷新页面时,该值丢失了。文本框未被禁用或设置为只读。我已经阅读了将值放在隐藏字段中的建议,但我不想这样做。这似乎是一个hack。文本框在用户控件中是这样的:<divid="Row"class="RaidRow"runat="server"><asp:ButtonID="RaidRowButton"runat="server"CssClass="RaidRowButton"OnClick="RaidRowButt

  3. ASP.NET - 脚本和 css 压缩 - 2

    在ASP.NET中是否有可用的本地压缩(用于javascript/css文件)? 最佳答案 试试Chirpy。它混合、缩小和验证您的javascript、样式表和无点文件。您可以使用YUICompressor或GoogleClosureCompiler。http://chirpy.codeplex.com/或者,要了解更多信息,请查看:http://www.weirdlover.com/2010/05/22/visual-studio-add-in-for-dotless-js-and-css-files/

  4. javascript - 是否存在免费的通用 ASN.1 解码/转储/检查程序? - 2

    是否存在免费的通用ASN.1解码/转储/检查程序?我有一个可疑的ASN.1block,它可能解密失败,我想检查它以查看它是否有效,如果有效,它包含哪些元素。 最佳答案 我还使用了dumpasn1并取得了好几年的成功),然后我决定在屏幕上查看200行长的嵌套标签有点难以理解并且想要更动态的东西,所以我可以折叠树的一部分以及类似的东西。这就是我试图用我自己的asn1js创造的东西客户端javascriptASN.1解码器。它也是开源的,并使用dumpasn1巨大的“已知OID”配置文件。不尝试检测所有ASN.1格式错误,仅检测无法解码的

  5. javascript - 是否可以使用 JavaScript 从 Flash applet 拖放至外部? - 2

    假设我想要一个包含Flash小程序的网页,并且我想将一些对象拖放到网页的其余部分或拖放到该网页的其余部分,这完全可能吗?如果您知道某个网站可以做到这一点,那就加分了! 最佳答案 这个让我很感兴趣。我知道jessegavin在我去解决这个问题时发布了一些代码,但是这个代码已经过测试。我有一个super简单的工作示例,可让您在Flash之间拖动。很乱,因为我在午休时间把它放在一起。这是demo还有source基类直接取自ExternalInterfaceLiveDocs.我添加了MyButton以便按钮可以有一些文本。大多数javasc

  6. javascript - JS ES6 中 ()=> 和 _=> 和 (_)=> 的区别 - 2

    这个问题在这里已经有了答案:ESCMAScript6arrowfunctions-parenthesesaroundparameter(1个回答)Using_(underscore)variablewitharrowfunctionsinES6/Typescript(4个答案)关闭去年。我注意到,当我想编写一个粗箭头函数“=>”时,我可以执行_=>、()=>或者(_)=>和我的代码功能相同(至少对于我的用例而言)它们之间有实际区别吗?如果是,我应该使用哪一个?我一直在使用()=>的时间,但后来有一天我看到某人使用_=>的代码,我觉得它看起来很酷,所以我也开始使用它。我看到这篇中篇文章h

  7. javascript - 我尝试比较具有多个字符的拆分字符串 - 2

    varinput='HISFANTOR';varoutput=[];varchar=input.split('');for(vari=0,len=char.length;i<len;i++){if(char[i]=='H'||'K'||'Y'||'V'||'B'||'C'||'N'||'O'||'F'||'P'||'S'||'I'||'U'){

  8. javascript - react Hook : dispatch action from useEffect - 2

    我的文件夹结构:|--App|--Components|--PageA.js|--PageB.js|--PageC.js|--common-effects|--useFetching.js我正在重构我的代码以使用Reacthooks从API获取数据.我想从useFetching.js中的useEffect发送一个被saga中间件拦截的Action。仅当组件(PageA、PageB、PageC)挂载时才应分派(dispatch)此操作。我正在使用redux、react-redux和redux-saga。PageA.js:function(props){useFetching(action

  9. javascript - 为什么两个不同的键在一个对象中相互覆盖? - 2

    我分配了以下三个变量:consta={key:true}constb={key:false}constc={[a]:'1',[b]:'2'}然后当我尝试将以下内容记录到控制台时:console.log(c[a],c[b])我得到了以下信息:22当我认为我应该得到:12为什么我错了,我该如何解决? 最佳答案 对象只能有字符串(或符号)作为它们的键。如果您尝试使用非字符串,它会被转换为字符串。所以当你设置c[a]为1时,a是一个对象,这意味着它需要被转换成一个字符串。所以你最终将c["[objectObj

  10. javascript - 如何将 math.max 缩减为对象数组 - 2

    我有一个对象数组。我想从数组的数字属性中获取最大值:[{number:1000,name:"Josh"},{number:2000,name:"Joker"},{number:3000,name:"Batman"}]我正在使用此解决方案,但我一直收到NAN:constmax=arr.reduce((a,b)=>Math.max(a.number,b.number));我的目标是获取最大值,然后将其存储在变量中constx={number:3000,name:"Batman"}我如何通过reduce实现它?它似乎只适用