2014-10-14 6 views
-2

Как я могу назвать функцию 'del'? потому что name.del() и this.name не работают :(JS как назвать эту функцию?

var name = function(){ 
    this.del = function(){ 
    } 
    name.del(); // no work 
    this.del(); // no work 
} 
+0

Это зависит от того, как 'называется name'. 'this' не всегда имеет одну и ту же ссылку, но если вы выполняете' this.del() 'inside' name', это всегда будет работать. –

+0

Что вы на самом деле пытаетесь достичь? – Sprottenwels

ответ

-1
var name={ 

    add:function(){ 
     alert('add'); 
    }, 
    del:function(){ 
     alert('del'); 
    }, 

} 
    name.del(); 

здесь называют это объект, который внутри может иметь некоторые функции и вары я думаю, что это может помочь вам

+0

Это не то, что ОП пытается сделать в своем примере – Sprottenwels

+0

@Sprottenwels, почему это неправильно ??? – Farhad

+0

Это не само по себе. Тем не менее, ОП пытается вызвать функцию внутри другой, анонимной. Он не делает ясно, что он пытается сделать, поэтому бросать на него какое-то решение, не теряя хотя бы несколько слов о том, что это на самом деле делает, не очень полезно. IMO – Sprottenwels

1

В для того, чтобы помочь вам, мы должны понять, что вы пытаетесь сделать, если вы только хотите, чтобы вызвать функцию в анонимной один, вы могли бы сделать это:.

var name = function(){ 

    function del(){ 

    } 

    del(); 
} 

Однако, если вы хотели бы использовать name в стиле класса, вы были на правильном пути.

function MyClass(){ 

    this.del = function(){ 

    } 

} 

// Instantiate 

var name = new MyCLass(); 

name.del(); 

Существует множество дополнительных способов сделать что-то. То, что вы задумали, зависит от вашего прецедента.

0

Вы объявляете name как функцию, но вы также объявляете del как еще одну функцию, member of the first. Этот синтаксис позволяет использовать name как Object (reffer to POO) или как функция.

  var name = function() { 
       this.del = function() { 
        console.log("Hello"); 
       }; 
       this.del(); 
      }; 
      name(); 

Это заставит name() быть выполнена & name.del тоже. Вы также можете авто запустить его таким образом.

  (function() { 
       this.del = function() { 
        console.log("Hello"); 
       }; 
      )(); // autoExecute 

Если вы хотите сохранить результат вашей функции Для подробного использования ...

  var name = (function() { 
       this.del = function() { 
        return "StackOverflow"; 
       }; 
      )(); 
      alert(name); 
Смежные вопросы