我试图理解为什么这不起作用.(尚未验证的基本示例)
当我测试它时,找不到firebug状态的Product.addPage.
var Product = function () { var Page = function () { var IMAGE = ''; return { image : function () { return IMAGE; }, setImage : function (imageSrc_) { IMAGE = ''; } }; }; var PAGES = []; return { addPage : function () { var len = PAGES.length + 1; PAGES[len] = new Page(); return PAGES[len]; }, page : function (pageNumber_) { var result = PAGES[pageNumber_]; return result; } }; }; // Begin executing $(document).ready(function () { Product.addPage.setImage('http://site/images/small_logo.png'); alert(Product.page(1).image()); });
Andrzej Doyl.. 8
您正在尝试引用Product 函数的addPage属性(在本例中是构造函数),而不是返回的对象.
你可能想要这样的东西:
// Begin executing $(document).ready(function () { var product = new Product(); product.addPage().setImage('http://site/images/small_logo.png'); alert(product.page(1).image()); });这也为addPage调用添加了括号(虽然这不是FireBug会抱怨的问题,因为它无论如何都无法找到该方法).
您正在尝试引用Product 函数的addPage属性(在本例中是构造函数),而不是返回的对象.
你可能想要这样的东西:
// Begin executing $(document).ready(function () { var product = new Product(); product.addPage().setImage('http://site/images/small_logo.png'); alert(product.page(1).image()); });这也为addPage调用添加了括号(虽然这不是FireBug会抱怨的问题,因为它无论如何都无法找到该方法).