如果没有看到我正在阅读的真实、基本、工作的例子,我总是很难掌握新概念。虽然我喜欢关于stackoverflow的另一个解释,但我真的很想看到一个非常基本的例子,展示JavaScript中方法和函数之间的区别,我可以快速运行以了解更多信息。
method
只是一个函数,它是对象的property
。 它不是javascript中的不同类型的对象,而是method
只是定义为对象property
的function
的描述性名称。
var myObj = {};
myObj.go = function() {alert("hi");}
myObj.go();
在此示例中,go
是 myObj
对象上的方法。
当如上面的示例 myObj.go()
中调用方法时,this
指针的值将设置为调用该方法所涉及的对象(在本例中为 myObj
)。
由于全局函数也是 window
对象的隐式属性,因此可以说全局函数也是 window
对象上的方法,但您不需要window
指定即可调用它们。
此函数中的 inner()
等本地函数只是函数而不是方法,因为它们不附加到特定对象:
function main() {
function inner() {
alert("hi");
}
inner();
}
这是一个函数和一个函数调用:
function myFunction(){
alert("This is a function!");
}
myFunction();
另一方面,这是一个方法调用,因为它是对象的成员函数。
message.toUpperCase();
以下是创建类/方法和调用的完整代码:
function Circle(x,y,r) {
this.xcoord = x;
this.ycoord = y;
this.radius = r;
}
Circle.prototype.retArea = function () {
return ( Math.PI * this.radius * this.radius );
};
var aCircle = new Circle(1,2,3);
var a = aCircle.retArea();
示例:
功能:
var f1 = function fBase() { ... }
function f2() { ... }
var f3 = function() { ... }
f1()
f2()
f3()
方法:
var c = function oBase() {
this.method1 = function() { ... };
}
c.prototype.method2 = function() { ... }
var o = new c()
o.method1()
o.method2()
方法 JSON:
var o = { method1: function() { ... } }
o.method2 = function() { ... }
o.method1()
o.method2()
函数是一种类型,可用于定义一段代码,可以使用调用("()")运算符执行,并且可以将数据返回给调用方。
例如
定义
function sayHello(){
return "Hello";
}
用
var result = sayHello();
现在,结果将持续"你好"。
方法是在对象内部定义并通过属性访问的函数。例如, slice
函数定义在所有字符串实例上
例如
定义
var obj = {
sayHello : function(){
return "Hello";
}
};
您还可以在对象定义之外定义方法
var obj = {};
obj.sayHello = function(){
return "Hello";
};
用
var result = obj.sayHello();
我们在面向对象编程中使用方法。
指:
- MDN 的职能
- MDN 中的对象