这是正确的吗?这是新的吗?
我的意思是每个函数都有的隐式参数。
我注意到,当我在严格模式下使用参数时,我的代码会失败,如果我删除严格模式不是问题......这是新的还是一直都是这样?
console.log('foo.js running');
(function() {
// 'use strict';
// unexpected arguments in strict mode ...
这是我使用它的地方:
_.extend = function(obj) {
_.each(Array.prototype.slice.call(arguments, 1), function (object) {
_.each(object, function(val, key){
obj[key] = val;
})
});
return obj;
}
最佳答案
不,严格模式不会阻止使用参数
。它确实稍微改变了它:arguments
对象不再与命名参数绑定(bind),因此:
function loose(a) {
console.log(a);
arguments[0] = "bar"; // Changes `a`
console.log(a);
}
function strict(a) {
"use strict";
console.log(a);
arguments[0] = "bar"; // Does not change `a`
console.log(a);
}
loose("foo");
strict("foo");
关于javascript - 严格模式下不会出现隐式参数的使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43692842/