是否“使用严格的”?在构造函数中扩展到原型方法
Does "use strict" in the constructor extend to prototype methods?
我想弄清楚"use strict"的定义是否扩展到构造函数的原型方法。例子:
var MyNamespace = MyNamespace || {};
MyNamespace.Page = function() {
"use strict";
};
MyNamespace.Page.prototype = {
fetch : function() {
// do I need to use "use strict" here again?
}
};
根据Mozilla,你可以这样使用:
function strict(){
"use strict";
function nested() { return "And so am I!"; }
return "Hi! I'm a strict mode function! " + nested();
}
这是否意味着原型方法继承了构造函数的严格模式?
No.
严格模式确实扩展到所有后代(读:嵌套)作用域,但由于您的fetch
函数不是在构造函数中创建的,因此它不是继承的。你需要在每个原型方法中重复这个指令。
特权方法将处于严格模式。为了避免在您的情况下重复,您可以
- a)通过将指令移动到脚本的第一行使整个程序严格,或者
b)将你的类包装在一个模块IIFE中,并使其严格:
… = (function() { "use strict"; function Page() { // inherits strictness } Page.prototype.fetch = function() { // inherits strictness }; return Page; }());
相关文章:
- 如何使用构造函数's的输出,以便将值插入到对象中
- 为什么我需要为扩展函数设置构造函数
- 尝试将变量传递到对象中时的作用域问题'的方法构造函数
- 如何将对象引用传递到 mootools 中另一个对象的构造函数中
- 在构造函数中定义函数会比将其附加到原型消耗更多的内存
- 如何在构造函数中创建一个简单的DOM元素,并在调用时将其附加到元素中
- 正在将构造函数函数迁移到TypeScript
- 在定义了构造函数之后,是否可以将实例属性添加到JavaScript原型中
- 在 JavaScript 中隐式地将方法添加到构造函数的原型中
- 将服务器端数据馈送到 JavaScript 对象构造函数中
- 扩展 pixi.js在构造函数中对访问父的属性进行精灵化
- Javascript:如何附加到构造函数的原型,如果该构造函数已经在另一个对象的原型上定义
- 如何将新的构造函数属性推送到数组
- 是否存在替换Javascript构造函数的问题'原型,而不是添加到原型中
- 将构造函数从单独的文件加载到 Chrome 扩展程序选项页面
- 将 onclick 函数扩展到 javascript 类
- 使用自己的逻辑/旁路构造函数扩展库
- 将javascript函数扩展到动态加载的文件中
- 是否“使用严格的”?在构造函数中扩展到原型方法
- 将javascript参数从对象构造函数传递到object's方法