我想創建一個在創建對象實例時自動實現的方法,就像類構造函數的概念一樣。創建一個模擬類構造函數的方法
function myString(string) {
// Storing the length of the string.
this.length = 0;
// A private constructor which automatically implemented
var __construct = function() {
this.getLength();
}();
// Calculates the length of a string
this.getLength = function() {
for (var count in string) {
this.length++;
}
};
}
// Implementation
var newStr = new myString("Hello");
document.write(newStr.length);
我當執行上面的代碼中出現以下錯誤信息:
TypeError: this.getLength is not a function
。
UPDATE:
問題是在this
範圍。 以下是updade後的構造方法:
var __construct = function(that) {
that.getLength();
}(this);
'this'在'__construct'是不是你認爲它是 - 當你解決這個問題,你還需要移動下面其中'this.getLength'定義代碼 –
@JaromandaX:對不起,但我不明白你在'__construct中的這個是不是你認爲它是什麼意思'。 –
[JavaScript對象中的構造函數]的可能重複(http://stackoverflow.com/questions/1114024/constructors-in-javascript-objects) – Ryan