[英]javascript passing a function as an argument
我想知道為什么當我對以下代碼進行調整時:
var product = {
firstname: "john",
lastname: "kcarl",
fullname : function() { return this.firstname + " " + this.lastname }
};
function write()
{
document.write(product.fullname());
};
write();
**** 以下全名變為未定義
function write(method)
{
document.write(product.method());
};
write(fullname);
**** 即使我嘗試這個它也未定義
function write(method)
{
document.write(method());
};
write(product.fullname);
這是因為 javascript 的范圍問題。 這是編寫此代碼的更好方法:
var Product = function() {
var self = this;
this.firstname = "john";
this.lastname = "kcarl";
this.fullname = function() {
return self.firstname + " " + self.lastname;
}
};
var product = new Product();
var fullnameMethod = product.fullname;
document.write(fullnameMethod());
在上面的例子中,我將范圍保存到一個名為 self 的變量中,我可以隨時調用 fullname() 方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.