我试图弄清楚'使用严格'的定义。扩展到构造函数的原型方法。例如:
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();
}
这是否意味着原型方法从构造函数继承严格模式?
答案 0 :(得分:5)
没有
严格模式确实扩展到所有后代(读取:嵌套)范围,但由于您的fetch
函数未在 内部创建,因此它不会被继承。您需要在每个原型方法中重复该指令。
当构造函数处于严格模式时,对比的特权方法将处于严格模式。为避免重复,您可以
b)将你的课程包装在IIFE模块中,然后严格要求:
… = (function() {
"use strict";
function Page() {
// inherits strictness
}
Page.prototype.fetch = function() {
// inherits strictness
};
return Page;
}());