嘿伙计们我是javascript应用程序开发的新手..我已经做了一些javascript代码但不幸的是它会引发一些错误
我使用的代码是
var c = ( function() { this.name = function() { console.log('yay'); } }());
当我调用函数c的实例时,它会抛出类似Uncaught TypeError: undefined is not a function
为什么我无法创建函数c的实例???我如何调用函数c以便我可以调用内部函数name()
。
Thanx为你提供帮助..
答案 0 :(得分:0)
似乎你误解了IIFE的概念。您需要Object
var c = {
name: function() {
console.log('yay');
}
};
c.name(); // yay
但是,如果你需要使用function
,那么你需要一个Constructor函数,然后用new
运算符调用它。
答案 1 :(得分:0)
使用thisss
var c = function() {
this.name = function() {
console.log('yay');
}
};
newFunction=new c();
newFunction.name()
答案 2 :(得分:0)
因为它是关闭的,所以你不能分配给变量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();