簡體   English   中英

方法鏈接在javascript中失敗

[英]method chaining failed in javascript

我正在嘗試訓練自己編寫鏈接功能,但出現錯誤

Cannot read property 'minus' of undefined(…)

我的代碼有什么問題?

 var math = function(){ var result = 0; var add = function(param){ result += param; }; var minus = function(param){ result -= param; }; var print = function(){ console.log(result) }; return {add:add, minus: minus, print:print}; } var calculator = math(); var result = calculator.add(5).minus(1).print(); console.log(result) 

在這種情況下,您需要將對象( this )返回到“鏈”中,就像您期望的那樣

您的print()也不會返回任何內容,因此result始終是不確定的。

 var math = function(){ var result = 0; var add = function(param){ result += param; return this; }; var minus = function(param){ result -= param; return this; }; var print = function(){ console.log('result: ' + result); // print doesnt return anything, it needs to if you want to assign anything by calling it return result; }; return {add:add, minus: minus, print:print}; } var calculator = math(); var result = calculator.add(5).minus(1).print(); console.log(result) 

您還可以存儲對返回對象的引用。

 var math = function() { var result = 0; var add = function(param) { result += param; return math; }; var minus = function(param) { result -= param; return math; }; var print = function() { console.log(result) }; var math = { add: add, minus: minus, print: print }; return math; } var calculator = math(); calculator.add(5).minus(1).print(); 

暫無
暫無

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

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