嗨我是新來的JavaScript應用程序開發..我已經做了一些JavaScript代碼,但不幸的是它會拋出一些錯誤函數調用錯誤
我所使用的代碼
var c = (function() { this.name = function() { console.log('yay'); } }());
,當我打電話函數c它拋出錯誤的例子,如Uncaught TypeError: undefined is not a function
爲什麼不能創建函數c的實例?
謝謝你的幫助..
嗨我是新來的JavaScript應用程序開發..我已經做了一些JavaScript代碼,但不幸的是它會拋出一些錯誤函數調用錯誤
我所使用的代碼
var c = (function() { this.name = function() { console.log('yay'); } }());
,當我打電話函數c它拋出錯誤的例子,如Uncaught TypeError: undefined is not a function
爲什麼不能創建函數c的實例?
謝謝你的幫助..
似乎你誤解了IIFE的概念。您需要Object
var c = {
name: function() {
console.log('yay');
}
};
c.name(); // yay
但是,如果你需要去與function
,那麼你就需要一個構造函數,這將被用new
運營商調用。
結束時,我想用像(函數() {this.name = function(){就像那樣..有可能嗎?我不想把它當做對象 – 2014-10-18 13:36:21
有些東西,你必須做才能達到你想要的。AFAIK,這是不可能的('c .name()') – 2014-10-18 13:39:34
使用thisss
var c = function() {
this.name = function() {
console.log('yay');
}
};
newFunction=new c();
newFunction.name()
請參閱我想使用like(function(){this.name = function(){like that ..is有可能嗎? – 2014-10-18 13:36:06
不,如果您使用var它不是這個 – 2014-10-18 13:39:50
因爲,它關閉,您不能分配給變量var c
。如果遵循該模式,則必須在該(function() {})
的範圍內包含函數/操作。
更多關於-http://javascriptissexy.com/understand-javascript-closures-with-ease/。
要使用這個,你可以修改js來這樣。
var c = (function() {
var name;
function setName(val) {
name = val;
}
return {
print: function() {
setName("yay");
console.log(name);
}
};
})();
console.log(c);
c.print();
'C'是不是一個功能,你需要刪除的自我執行,我的意思'()'在expresion – Grundy 2014-10-18 13:53:16