Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在functionName.prototype.methodName()和funObject.methodName()中调用函数有什么区别吗?_Javascript_Node.js - Fatal编程技术网

Javascript 在functionName.prototype.methodName()和funObject.methodName()中调用函数有什么区别吗?

Javascript 在functionName.prototype.methodName()和funObject.methodName()中调用函数有什么区别吗?,javascript,node.js,Javascript,Node.js,如果我创建这样的函数构造函数 function ClassName() { } ClassName.prototype.a = function() { console.log("A Executed") } 然后我为这个构造函数编写如下方法 function ClassName() { } ClassName.prototype.a = function() { console.log("A Executed") } 现在我有两种方法来调用这个新创建的方法a ClassName.pro

如果我创建这样的函数构造函数

function ClassName() {
}
ClassName.prototype.a = function() {
console.log("A Executed")
}
然后我为这个构造函数编写如下方法

function ClassName() {
}
ClassName.prototype.a = function() {
console.log("A Executed")
}
现在我有两种方法来调用这个新创建的方法
a

  • ClassName.prototype.a()
  • var obj=new ClassName()
    obj.a()
  • 以上两种方法都提供了完全相同的输出,即

    处决


    但在某个地方,我觉得这些肯定是一些我没有意识到的差异。这两种方式有什么不同吗。有人,请给我点提示不同的是函数上下文

    函数类名称(名称){
    this.name=名称;
    }
    ClassName.prototype.a=函数(){
    log(“A Executed”,this.name,this==obj,this==ClassName.prototype)
    }
    var obj=新类名('test')
    obj.a();
    
    ClassName.prototype.a()
    区别在于函数上下文

    函数类名称(名称){
    this.name=名称;
    }
    ClassName.prototype.a=函数(){
    log(“A Executed”,this.name,this==obj,this==ClassName.prototype)
    }
    var obj=新类名('test')
    obj.a();
    
    ClassName.prototype.a()
    如果它是一个静态方法,不使用
    这个
    ,则没有区别。区别在于访问当前实例,即
    this
    。如果它是静态方法,不使用
    this
    ,则没有区别。区别在于访问当前实例,即
    this