簡體   English   中英

javascript將函數作為參數傳遞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM