使用点运算符和函数

时间:2017-03-14 10:09:55

标签: javascript node.js express

我刚刚开始学习javascriptnodejs。他们使用的代码之一是:

var express=require('express');
var app=express();
app.listen(3000);

现在我做的时候:

console.log(typeof app);
console.log(typeof app.listen);

我明白了:

function
function

作为输出。现在,如果typeof appfunction,那么我们如何使用.运算符来访问其他函数(listen)?我试着阅读express模块,但不太了解。

有人可以举一个简单的例子,我们使用function名称和.运算符来访问其中的其他函数吗?

我试过了:

var t=function(){
    t.bar=function(){
        console.log('bar');
        }
    };  

t.bar();

但是没有用。

3 个答案:

答案 0 :(得分:2)

函数是对象,它们可以像任何其他对象一样具有属性。

var t = function() {
    console.log('foo');
};

t.bar = function() {
    console.log('bar');
};

t.bar();

t.favColor = 'red';
t.shoeSize = 12;

答案 1 :(得分:1)

在Javascript中,function是对象。这是您定义对象的方法:

var myObject = {/*Some members*/};

这是您定义function

的方法
var myFunction = function(/*Some parameters*/) {/*Do something*/};

typeof myObject

将导致"object"

typeof myFunction

将导致"function"

它们之间的区别在于可以调用myFunction,而无法调用myObject。例如这个

({})()

会导致错误。但是,否则它们非常相似,它们可以以相同的方式拥有成员。

myFunction.myInnerFunction = function(/*Some other parameters*/) {/*Do something else*/};

myInnerFunction myFunction成员分配一个恰好是function的值。从那以后,您就可以致电myFunction.myInnerFunction。但是,您需要了解有关function的更多信息,您可以使用this关键字开始学习。

答案 2 :(得分:0)

您的问题是关于语言的基础知识。

有很多解决方案。

这取决于你想要达到的目标。

以下是一些例子:

select().

或:

const t = () => {}; 
t.bar = () => { 
    console.log('bar'); 
}; 

t.bar();

或:

const t = {
  bar: () => { 
    console.log('bar'); 
  }
};  

t.bar();

或:

class t {
  static bar() {
    console.log('bar'); 
  }
}

t.bar();

并修复您的示例(与上面的示例相同):

class T {
  static bar() {
    console.log('bar'); 
  }
}

const t = new T();
t.bar();