如何区分方法和功能?

时间:2016-12-21 10:35:45

标签: javascript oop

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

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

在这种情况下,nextAll()addBack().css()都是方法。

类似地,直接调用函数。像,

make_tea();

我想通过查看它是如何被使用来肯定地知道某个东西是一个函数还是一个方法。使用PersonOne.run_now()始终保证run_now()是一种方法吗?如果我们使用run_now()来访问它,.仍可以使用吗?

我的问题是"当我们使用.来调用它时,函数会成为一种方法吗?"

1 个答案:

答案 0 :(得分:2)

方法只是存储在function 属性中的object 引用。 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是包含属性名称的string

所以

bar.baz()

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