我試圖在JavaScript文件中使用顯示原型模式來封裝兩個相關函數的集合。但是當頁面加載時,它會在調用.init函數時返回以下錯誤:使用顯示原型模式時出現「未定義不是函數」錯誤
「Uncaught TypeError:Undefined不是函數。」
這是我的標記模式。
<script>
$(function() {
testProto1.init();
testProto2.init();
});
</script>
這裏是我的JavaScript文件中的模式。
var testProto1 = function() {
};
testProto1.prototype = function() {
var init = function() {
alert("init 1");
};
return {
init: init
}
}();
var testProto2 = function() {
};
testProto2.prototype = function() {
var init = function() {
alert("init 2");
};
return {
init: init
}
}();
這可能是我的一些基本的語法錯誤,如果它是重複的,我很抱歉。爲什麼我看到這個錯誤,我該如何解決?謝謝。
請描述你真正想要完成的事情。這段代碼看起來有很多不同的方式,但我不確定你實際上想做什麼,所以不知道該怎麼建議。 'testProto1.init()'不起作用,因爲'testProto1'構造函數沒有'.init()'屬性。 – jfriend00
@ jfriend00,我的意圖是命名空間我正在使用的功能。一組函數處理網格,另一組處理數學計算。這種模式不是混合各種功能,而是將功能封裝在邏輯單元下。 –
如果你只是想命名一些實際上不是實例化對象的方法的函數,那麼你完全不使用原型。您只需將屬性放在對象上並調用這些屬性即可。 – jfriend00