[英]Object turns into undefined when passed to function as argument and method is called JavaScript
[英]JavaScript call method of object passed as argument
JavaScript新手。 我正在嘗試調用作為參數傳遞給另一個方法的對象的方法。 我不斷收到這樣的錯誤消息:參數為null或參數沒有名為x的方法。
在像c#這樣的強類型語言中,您可以執行此操作
public class Context
{
public void moveTo(int x, int y) {...}
public void lineTo(int x, int y) {...}
}
public class Square
{
public void draw(Context c, int x, int y) {
c.moveTo(x,y);
c.lineTo(x+10,y+5); //etc
}
}
public class Design
{
ctx = new Context();
s = new Square();
s.draw(ctx,5,10);
}
我正在畫一個更復雜的東西,而不是正方形。 但是在我嘗試使用Javascript進行編譯時,它在draw中遇到一個錯誤,即c為null,沒有方法lineTo。
用Java腳本執行此操作的方式是什么?
好吧,在JavaScript中,您可以這樣做:
let sum = {
operation: (a, b) => a + b
};
let minus = {
operation: (a, b) => a - b
};
let obj = {
applyOperation: (obj, a, b) => obj.operation(a, b)
};
obj.applyOperation(sum, 1, 2); // => 3
obj.applyOperation(minus, 1, 2); // => -1
如果傳遞空對象( {}
),則會收到TypeError
異常,在這種情況下,將類似於: TypeError: obj.operation is not a function
埃爾頓是正確的。 我的問題是JavaScript允許的if語句語法(類似於C)的賦值(我已經習慣於C#預防這種情況)以及不熟悉Chrome調試,因為它是運行時錯誤而不是編譯錯誤。
該實際錯誤消息是:
Uncaught TypeError: Cannot read property 'moveTo' of null
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.