javascript - 如何区分方法和函数?

标签 javascript oop

我一直对这两者感到困惑。据我了解,方法总是使用点符号,例如:

$( "li.third-item" ).nextAll().addBack().css( "background-color", "red" );

在本例中,nextAll() , addBack().css()都是方法。

同样,函数也是直接调用的。就像,

make_tea();

我想通过查看某个东西的使用方式来确定它是函数还是方法。是否使用PersonOne.run_now()始终保证run_now()是一种方法吗?可以run_now()如果我们使用 . 仍然是一个函数访问它?

我的问题是“当我们使用 . 调用函数时,它会成为方法吗?”

最佳答案

方法只是存储在对象属性中的函数引用。 Javascript 中的方法仅仅是一个概念,实际上并不是现有的语法部分。另外,Javascript 中没有 method 关键字。

function foo() { /* whatever */ }

var bar = {};
bar.baz = foo;

// You'd consider this a function call
foo();

// While the following is actually syntactically also a function call
// you might consider baz a "method of the bar object"
bar.baz();
// and thus bar.baz() would then be a "method call".

请注意,要访问对象的属性,您有两种可能的方式:object.propertyobject[propertyName] 其中 propertyName是一个包含属性名称的字符串。

所以

bar.baz()

实现与 完全相同并且与

完全相同
bar["baz"]().

关于javascript - 如何区分方法和函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41260702/

相关文章:

javascript - 如何使用 Composition API 将项目添加到本地存储 Vue 3

javascript - Angular - 错误 : Can't resolve 'classlist.js'

c# - C#中new修饰符的真正意义是什么

c# - 为什么在声明中隐式向上转换?

java - 外部类可以定义为静态并包含内部静态类吗?

java - 如何以干净的方式对越来越多的带有参数的命令进行建模

javascript - 反转游戏经验公式以显示一个级别需要多少经验

javascript - 在 JavaScript 中查找对象中的下一个值是否存在

Javascript - 删除 JSON 字符串中出现的 u',解析返回意外标记

list - Lua 函数在源代码中使用 "self"但没有元方法允许使用它们