函数调用错误

时间:2014-10-18 13:31:56

标签: javascript

嘿伙计们我是javascript应用程序开发的新手..我已经做了一些javascript代码但不幸的是它会引发一些错误

我使用的代码是

var c = ( function() { this.name = function() { console.log('yay'); } }());

当我调用函数c的实例时,它会抛出类似Uncaught TypeError: undefined is not a function

的错误

为什么我无法创建函数c的实例???我如何调用函数c以便我可以调用内部函数name()

Thanx为你提供帮助..

3 个答案:

答案 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();