2017-07-23 23 views
0
"use script"; 

var user = { 
    name: "John Doe", 
    career: "Civil Engineer", 
    socialMedia: { 
     fb: "www.facebook.com/johndoe", 
     twitter: "www.twitter.com/johndoe" 
    }, 
    about: function() { 
     console.log("My name is " + this.name + " and I am a " + this.career); 
    } 
} 

var name = "Jen"; 
var career = "Dentist"; 

user.about(); 

var newAction = user.about; 

newAction(); // My name is undefined and I am a undefined 

Warum ist newAction() undefined Name und Beruf zurückkehren, aber wenn ich entfernen Sie die var aus:Javascript dies und Namens vs. nicht Namensgebung Variablen

var name = "Jen"; 
var career = "Dentist"; 

zu

name = "Jen"; career = "Zahnarzt";

dann ausführen ich newAction() wieder und bekommen:

newAction() // My name is Jen and I am a Dentist

+0

was soll * Verwendung Skript * tun ?? –

+0

Wie definiert man eine Variable ohne Namen? Keine Kennung? Wenn Sie 'var' ausschließen, wird es ein globales sein und alle seine Fehler zusammen mit ihm werden Ihnen unnötige Trauer verursachen. – zer00ne

Antwort

1

NodeJS Code nicht in globalen Bereich läuft, aber in einer Art Funktion Beispiel:

//(function(module){ 
    var some=5; 
console.log(global.some);//undefined 
//})(..) 

Wenn Sie also ein erklären Variable, es ist nicht Teil von global welche diese bezieht sich auf, es ist nur in der unsichtbaren Funktionsumfang (das ist ein differenc e für Browser, bei denen var im höchsten Bereich Teil des Fensters ist.

Wenn Sie die Erklärung (nicht gut, nicht im Strict-Modus) verlassen weg, wird es global scoped und damit Teil von globalen aka dieser in Funktionen wird. So kann tun:

global.name="John"; 
newAction();//this===global 

The 'this' keyword behaves differently in Nodejs and browser