一、第一个demo
- 赋值后,赋值变量改值
var $$ = {jqFuntion:function(options){
var operate = options.operate; //变量先保存通过参数传过来的options.operate
options.operate = function(){ //在operate变量赋值后,因此,不能改变operate的值
console.log("改成功了!");
}
operate();
}};
function suibian(){
$$.jqFuntion({
operate:function(str){
console.log("没改!");
}
});
}
suibian(); //打印“没改!”
- 赋值前,赋值变量改值
var $$ = {jqFuntion:function(options){
options.operate = function(){ //在operate变量赋值前改值,因此,能改变operate的值
console.log("改成功了!");
}
var operate = options.operate;
operate();
}};
function suibian(){
$$.jqFuntion({
operate:function(str){
console.log("没改!");
}
});
}
suibian(); //打印“改成功了!”
二、第二个demo
var options = {};
function suibian(o){
var _name = o.name;
o.name = "mike";
console.log(_name); //undefined
}
suibian(options);
var options = {};
function suibian(o){
o.name = "mike";
var _name = o.name;
console.log(_name); //mike
}
suibian(options);