JavaScript:严格模式和对象
javascript: strict mode and objects
我有一些构造对象的代码:
function gridObjConst(id, itemName, itemPrice, itemListPrice, width, height, imgName) {
this.id = id;
this.itemName = itemName;
this.itemPrice = itemPrice;
this.itemListPrice = itemListPrice;
this.width = width;
this.height = height;
this.imgName = imgName;
return this;
}
我使用w3schools页面作为指南:http://www.w3schools.com/js/js_objects.asp
一切都很好。然后我在代码的顶部添加了"use strict",这个函数坏了。Firebug 报告:这是未定义的 - this.id = id
我该如何解决这个问题?
这意味着
你在没有new
运算符的情况下调用构造函数。您需要这样做:
var myGridObjConst = new gridObjConst();
当您在没有 new
运算符的情况下调用函数时,this
引用窗口,但在严格模式下它不会,因此会出现错误。
另请注意,不需要从构造函数return this;
。 this
将自动返回。
正如@JoachimSauer所指出的,在学习JavaScript时,你应该考虑使用MDN而不是W3Schools。事实上,在您链接到的页面上的任何地方都没有提到原型,这绝对是荒谬的。
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- Mongoose TypeError:实例化模式类型的对象时,对象不是函数
- 从联合js rect对象调用引导模式
- 堆和工厂模式中的本地对象
- ES6 const,用于在JavaScript中创建对象原型;这是一种模式吗
- JavaScript模块模式-如何在使用对象/函数之前激发构造函数/init函数
- 如何在javascript对象中设置属性的类型,就像mongoose模式设计一样
- Mongoose模式:强制创建一个对象数组
- 解释主干对象和类创建模式
- 包含 2 个或更多对象的页面上的 JavaScript 设计模式
- SVG对象模式,如何乘以它
- 无法使用量角器正确执行页面对象模式
- 不能将页面对象模式与量角器一起使用
- 如何用对象模式填充数组
- 哪个是更好的Javascript对象模式
- 如何在node.js流中一次性以对象模式分配块?
- 我如何使这个对象模式工作
- 在Protractor中正确使用页面对象模式
- 多个浏览器和页面对象模式
- 我应该如何实现面向对象模式的交互式web应用程序(与jQuery的助手)