方法函数:
function sendMessage(sMsg,oObj) {
if (arguments.length == 2) {
oObj.handleMsg(sMsg);
oObj.test();
} else {
alert(sMsg);
};
}
sendMessage("Hello world!");
if (arguments.length == 2) {
oObj.handleMsg(sMsg);
oObj.test();
} else {
alert(sMsg);
};
}
sendMessage("Hello world!");
普通的方法传递:
function obj() {
}
obj.prototype.handleMsg = function(sMsg) {
alert("This is a custom message: " + sMsg);
};
obj.prototype.test = function() {
alert("test");
};
sendMessage("asdfsdasdfdfa", new obj);
}
obj.prototype.handleMsg = function(sMsg) {
alert("This is a custom message: " + sMsg);
};
obj.prototype.test = function() {
alert("test");
};
sendMessage("asdfsdasdfdfa", new obj);
另一种方法(对象字面量):
//这里传进去了两个参数,第二个为一个对象。
//该对象有一个方法handleMsg()
sendMessage("How are you?", {
handleMsg: function(sMsg) {
alert("This is a custom message: " + sMsg);
},
test: function(){
alert("test");
}
});
//该对象有一个方法handleMsg()
sendMessage("How are you?", {
handleMsg: function(sMsg) {
alert("This is a custom message: " + sMsg);
},
test: function(){
alert("test");
}
});
对这样的方法传递不是很理解,不过也可以。牛人给指点一下
补充:
这种方法在《深入浅出JavaScript》中被称为对象字面量
创建对象的方法:
var obj = new object();
obj.var = "asdf";
obj.click = function(){
alert("asdfas");
};
等价于
var obj = {
val:"asdf",
click: function(){
alert("asdfa");
}
};
var obj = new object();
obj.var = "asdf";
obj.click = function(){
alert("asdfas");
};
等价于
var obj = {
val:"asdf",
click: function(){
alert("asdfa");
}
};
这样就对上面的用法理解了。