Javascript set 属性函数不起作用
Javascript set attribute function doesn't work
我是Javascript和编程的乞丐,我的英语不好(对不起,如果有任何语法错误),但这是我的问题:
当我在JS中创建一个类并创建一个函数来设置其对象的属性时,浏览器无法识别该函数。 示例:
var myObject = new MyClass();
myObject.setAttribute();
function MyClass() {
this.attribute;
}
MyClass.prototype.setAttribute = function() {
this.attribute = true;
};
当我尝试运行此代码时,chrome 会抛出一个错误,说"未捕获的类型错误:对象 # 没有方法'setAtributte'",指定的行为 2。我不明白。
我再说一遍:我是一个乞丐,所以这对你来说可能是一个愚蠢的错误,但这对我来说是一个很大的问题。 谢谢。
JavaScript 已经"提升"了你的声明,以便在变量声明之前定义MyClass
;但是你的原型更新没有被提升。更改代码的顺序
function MyClass() {
this.attribute;
}
// Prototype has to be defined BEFORE it can be used
MyClass.prototype.setAttribute = function() {
this.attribute = true;
console.log(this.attribute);
};
var myObject = new MyClass();
myObject.setAttribute();
使用 function name() {}
语法声明的函数被提升在顶部,这允许您在代码中定义函数之前调用函数,但对于其他每行都不正确。
您的代码基本上被评估为:
var MyClass = function MyClass() {
this.attribute;
}
var myObject = new MyClass();
myObject.setAttribute(); //does not exist since it's defined on the line below
MyClass.prototype.setAttribute = function() {
this.attribute = true;
};
您应该将代码重新排序为:
//constructor declaration
//setting prototype values
var myObject = new MyClass();
myObject.setAttribute('test');
相关文章:
- 监视函数从服务返回不起作用,但作用域函数起作用
- Ember Data DS.Model's set函数不起作用
- Javascript:If-then语句在函数中不起作用
- JavaScript链接在点击时不起作用;函数在页面加载时工作
- AngularJS指令部分应用的函数don'不起作用
- 为什么我的JavaScript堆栈排序函数不起作用
- 嵌套到另一个函数中的Fancybox函数;不起作用
- Javascript onchange()函数不起作用
- I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用
- javascript函数调用不起作用
- 另一个Ajax函数触发的Ajax函数不起作用
- 从PHP调用JS函数不起作用
- 清除函数中if语句内部不起作用的间隔
- js函数堆栈传入变量,.hide()不起作用
- jQuery validate函数不起作用
- jQuery克隆函数在chrome中不起作用
- JS-窗口宽度函数不起作用
- 函数调用不起作用
- .hasClass 在 onclick 函数中不起作用,但删除和添加类函数可以
- javascript函数,该函数不起作用,但不会显示任何错误