- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以,假设我有一个类(class)(不是一个很好的例子,但它可以用于此目的):
function Apple (type) {
this.getInfo = function() {
alert('this apple is green');
};
this.getInfo();
}
我想创建它的一个实例,所以我通常会这样做:
var apple = new Apple();
但是,在我的场景中,因为实例将立即执行,所以我不需要变量,所以我只想这样做:
new Apple();
我知道这是可能的,但我不知道 javascript 在幕后会做什么。它会创建内存引用吗?它会将一些标记放入全局变量中吗?或者它只是运行一个一次性执行类实例?
本质上,我想问的是,仅使用“new Apple();”有什么危害?是。
更新
由于这显然太模糊,无法得到我正在寻找的建议,让我更具体一些。在我的公司,我们对 JavaScript 文件使用标准的分类结构,只是为了保持一致性。这就是我正在谈论的结构(请注意,您使用 http://ejohn.org/blog/simple-javascript-inheritance/ 中的类设计):
MyClassName = Class.extend({
init: function (/*param1, param2, etc*/) {
// this method is called immediately when the class is instantiated.
},
destroy: function () {
// this is your clean up method.
}
});
有时不需要将 MyClassName 分配给变量,只是因为 init 方法的目的是启动整个事情,所以缺少 lint 来使用“new MyClassName();”核心 Javascript 会做什么是一个错误,这是我的终极问题。
最佳答案
大多数 JS linter 都会标记实例化类而不将其分配给变量或属性,因为它表明:
在后一种情况下,很可能(尽管这取决于 JS 环境)您通过实例化未引用的对象来分配不会使用的内存。在构造函数中产生副作用通常也是一个坏主意(尽管这是观点),因为它们会破坏开发人员对创建实例的期望,并且可能导致难以发现的错误。将副作用代码放入方法中并调用它通常更简单:
function Apple (type) {
this.getInfo = function() {
alert('this apple is green');
};
}
var a = new Apple();
a.getInfo();
关于javascript - 在javascript中实例化一个新类时,不将其分配给变量有什么危害?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34908003/
当我开始学习 Java 时,有人告诉我不要在 Java EE 应用程序中执行 System.out.println。但是我真的不知道不这样做的原因是什么。 我很清楚如果我们真的需要打印一个重要的,它应
我是一名优秀的程序员,十分优秀!