Edit in JSFiddle

var name = 'window下的name<br/>';
var resultCon;
function fn1(myScope) {
    with (myScope) {
        resultCon.innerHTML += name;
    }
}

function MyObj(myScope) {
    var name = 'MyObj下的name<br/>';
    
    this.doFunction = function(myScope) {
        with (myScope) {
            resultCon.innerHTML += name;
        }
    };
}


window.onload = function() {
    resultCon = document.getElementById('result');
    var name = "onload下的name<br/>";
    var fn2 = function(myScope) {
        with (myScope) {
            resultCon.innerHTML += name;
        }
    };
    var myScope = {
        name : "自定义变量查询域</br>"
    };

    fn1(myScope);//自定义变量查询域
    fn2(myScope);//自定义变量查询域
    var obj = new MyObj();
    obj.doFunction(myScope);//自定义变量查询域

    
};
<div id="result">代码输出结果:<br/></div>