JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 为什么coffeescript会生成这样的类?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
鉴于以下coffeescript代码:
class Animal
  constructor: (@Name) ->
  speak: (things) -> "My name is #{@namE} and I like #{things}"

这是生成的:

var Animal = (function() {
  function Animal(Name) {
    this.name = name;
  }
  Animal.prototype.speak = function(things) {
    return "My name is " + this.name + " and I like " + things;
  };
  return Animal;
})();

但为什么这个惯用代码不会产生呢?

var Animal = function Animal(Name) {
  this.name = name;
};
Animal.prototype.speak = function(things) {
  return "My name is " + this.name + " and I like " + things;
};

我知道coffeescript在匿名函数中包含很多东西来控制范围泄漏,但是这里可能会泄漏什么?

解决方法

生成的代码可以在Internet Explorer中可靠地具有命名功能. (在本例中,“Animal”.)如果您只是在顶级范围内使用命名函数,它将与可能存在的任何var Animal =声明冲突…即使在较低范围内,也会阻止它们被正确引用.要解决IE错误,我们在类定义中包含函数包装器.

大佬总结

以上是大佬教程为你收集整理的javascript – 为什么coffeescript会生成这样的类?全部内容,希望文章能够帮你解决javascript – 为什么coffeescript会生成这样的类?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。