2017-09-28 45 views
0

我有一個問題我一直使用JavaScript編寫功能用於返回或設置其他的元素的值,像這樣的區別是:是什麼。功能()和在JavaScript的函數(參數)

function test(x, y){ 
    return x*y; 
} 

和調用函數像這樣:

test(20, 50); 

但如jQuery庫,也可以看到像這樣的功能:

var test = something.test(); 

所以我的問題是以下功能.test() or test()之間的區別是什麼,或者它們是相同的,以及如何寫這個函數的其他方式被稱爲?

,你如何寫一個.function()

希望能學到新的東西,對不起,如果這是一個有點亂,但我只是很好奇。

+0

肯定是一個something.test()函數只是呼籲對象的東西的功能? – Alex

+0

這只是一個分配給對象屬性的函數。這被稱爲「方法」。 – Bergi

+1

@MuthuKumaran難道我們不是有一個JS特定的一個也詳細說明這個''工作嗎? – Bergi

回答

2

這是一個功能。它被稱爲function()

function test(a, b) { 
 
    return a * b; 
 
} 
 

 
console.log(test(2,3));

這是一個對象的方法。它是在對象中聲明和一個函數被稱爲object.function()

var myObject = { 
 
    test: function (a, b) { 
 
    return a * b; 
 
    } 
 
} 
 

 
console.log(myObject.test(2,3));

1

在你的例子中,something.testsomething的一個屬性,它恰好是一個函數。另一方面,

test()只是一個功能,可在當前範圍內訪問。

下面是一個非常簡化的示例:

const someObj = { 
 
    test: function(){ 
 
    console.log('foo!'); 
 
    } 
 
} 
 

 
function test(){ 
 
    console.log('bar!'); 
 
} 
 

 
someObj.test(); 
 
test();

+0

oke所以這將如何看待代碼? jquery如何做這樣的事情:$('element')。value()這是怎麼看代碼的? – FutureCake

+0

感謝您的解釋!我會接受你的回答! – FutureCake

+0

你不完全接受這個答案。可以在鏈接的重複目標中找到更好,更完整的答案。 – Cerbrus

相關問題