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
。