簡體   English   中英

使用對象並在JavaScript中創建返回值的方法

[英]Working with objects and creating methods in JavaScript that return values

這讓我發瘋,因為我在Google上找不到任何東西。 也許是因為我不知道正確的術語才能正確搜索。 但這就是我想要做的。

我想創建一個功能類似於對象的函數。 我認為這稱為方法,盡管我可能是錯的。

檢查一下,這是我想要執行的操作的偽代碼。

function myMethod(){
var p = this.getAttribute('x');
var p = p+1;
return p;
}

function otherFunction(){
var q = document.getElementByID('Element').myMethod();
alert(q);
}

因此,我無法使它正常工作。 一直在說myMethod()undefined而不是函數。

如果希望myMethod在元素上可用,則必須將其附加到元素的prototype上

Element.prototype.myMethod = myMethod;

prototype的概念很大,但是可以歸結為這樣的事實,即函數實例以您描述為“像對象”的方式具有可用的函數。

在這種情況下,頁面上的任何元素都是Element函數的實例。 因此,任何元素都將具有可用的.myMethod ,您可以調用它。 Element是一個函數,盡管您實際上並沒有處理它-實例可用,因為您將它們放在HTML中,因此您可以使用Element繞過。)

其次,如果您有var p ,則另一個var p沒有多大意義。 只需使用p = p + 1p++ (添加一個的快捷方式)。

function myMethod(element){
    var p = element.getAttribute('x');
    var p = p+1;
    return p;
}

function otherFunction(){
    var q = myMethod(document.getElementByID('Element'));
    alert(q);
}

顯然,最好不要在全局范圍內聲明它們,但基本上是javascript正在尋找myMethod() ,它是您所選擇的DOM元素的成員,但實際上您已經聲明了該函數獨立存在。

另一種選擇是通過原型繼承添加方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM