我不知道這是可能的,但我有一些特殊情況需要它。在Javascript中返回外部函數的功能
//Obj is a class with nothing.
Obj.prototype.v1 = function(){
//this is a normal statement.
//it could be something else
return 3;
}
//or it can be any way to declare a function:
var v1 = function(){return 3};
Obj.prototype.v2 = function(){
return this.v1()+2;
}
如何讓它直接返回3呢?這就像函數v1()對於v2()類似於僞代碼this.return(3)
一樣,並且在第一次返回後肯定沒有東西可以達到。
如果我動態生成代碼並且它必須是第二個函數中的返回值。 (因此,它可以很容易地獲得意想不到的令牌return (return 3).v2()
,而試圖讓內部函數的調用行爲就像它的當前功能的一部分。)
反正有做this.v1()
直接導致外功能v2()
返回,爲首先返回它遇到?最好通過關注修改v1()。
不清楚你在問什麼。我不知道什麼「具有函數值的字符串的標籤」的意思。你想*使WHAT直接返回3在這裏*?你指的是哪個*第一個回報?你是什麼意思*動態生成代碼*?爲什麼會生成或執行諸如'return(return 3).v2()'之類的代碼? – 2016-02-27 03:33:37
即使我不清楚你在問什麼。 –
修改後,它生成爲'return this.v1()+2',這個語句是正確的,除非我們需要v1()直接返回,然後我試圖從當前函數的範圍中揭示v1()。 – user3352539