我对js奇怪的范围行为有一些问题。
我有这个Graph
函数(https://github.com/cpettitt/graphlib的简单包装器)。如果我像标记" 1"一切正常,如果我使用forEach我有范围问题。
function Graph() {
this.g = new graphlib.Graph();
this.setNode = function (id, value) {
this.g.setNode(id, value || {});
}
}
var gg = new Graph();
gg.setNode("1"); //works
["2a","2b"].forEach(gg.setNode); //doesn't work
错误为Cannot read property 'g' of undefined
g
Graph
实例变量public $Pictures;
public function rules(){
return [
[['Pictures'], 'safe'],
]
}
public function getPictures(){
$pics="1.jpg";
return $pics;
}
在forEach中不可见。
答案 0 :(得分:0)
使用forEach
的第二个参数来锁定对范围的函数调用:
["2a","2b"].forEach(gg.setNode, gg);