好的,我应该知道这个问题的答案,但由于某种原因,我从来没有真正理解或需要真正了解 JavaScript。
我的问题是:查看下面的代码示例,我的理解是正确的还是我遗漏了一些信息。
样品 1
需要实例化函数(或类)才能使用该IsOld
方法,并且IsOld
将为每个实例创建一个单独的函数副本。
function MyClass1() {
this.IsOld = function (age) {
if (age > 40) {
return true;
}
return false;
};
}
// sample usage
var m1 = new MyClass1();
console.log(m1.IsOld(34));
样品 2
需要实例化但与MyClass1
脚本引擎不同的是不需要IsOld
为每个类实例创建方法的副本。
var MyClass2 = (function () {
function MyClass2() { }
MyClass2.prototype.IsOld = function (age) {
if (age > 40) {
return true;
}
return false;
};
return MyClass2;
})();
// sample usage
var m2 = new MyClass2();
console.log(m2.IsOld(34));
样品 3
无需实例化函数/类即可访问该IsOld
方法。该方法的单个实例IsOld
用于所有调用。
var MyClass3 = {
IsOld: function (age) {
if (age > 40) {
return true;
}
return false;
},
};
// sample uage
console.log(MyClass3.IsOld(34));
注意:我猜这里有很多类似的问题/答案,但由于某种原因,我找不到对我来说真正有意义的问题/答案。