为什么函数包装不隐藏javascript中未调用的函数对象
Why is a function wrap unside a function object not called in javascript
我有JavaScript函数作为对象:
function hexMesh(){
var side=25;
console.log('hexMesh');
function drawOver(){
}
}
正如您所看到的,它有一个名为drawOver
的函数。
我尝试使用如下构造函数来调用它:
window.onload = function() {
hexMeshObj=new hexMesh();
hexMeshObj.drawOver();
}
但它给了我说undefined is not a function
的错误
现在我知道我可以在对象的原型中声明函数,但我不想这么做。
这是在JSFiddle上。
你不能那样使用JavaScript!
解决方案:使用类原型(请不要将它们视为类,尽管它们提供了继承)
var x = function(v){ this.test = v; } // This is your constructor
x.prototype.show = function(){ console.log("TEST", this.test); } // This is a prototype with this as a context
var y = new x(true);
y.show(); // Logs TEST true
编辑:或者(尽管原型方式更好,因为它提供了真正的继承oop方式)
var x = function(v){
var context = this;
this.test = v;
this.show = function(){
console.log('test', context.test)
});
如果需要,另一种替代方法是使用绑定来绑定上下文。
相关文章:
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 如何在Javascript函数调用中循环变量
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- 如何远程检查JavaScript应用程序的函数调用堆栈
- javascript函数调用不起作用
- 为什么这个函数调用会破坏程序并导致未定义的变量
- 如何通过函数调用设置图像的src
- 从全局函数调用Ember控制器上的方法
- 为什么Jquery$.ajax在函数调用中触发所有statusCode,即使调用成功
- JavaScript函数调用(arg1)(arg2)
- 打印链接时,将javascript函数调用到链接中
- 在函数调用中封装数据除了隐藏数据之外还有什么优点
- 无法从JavaScript中的函数调用对象属性
- 对中的函数调用进行排序是回调的唯一方法
- 函数调用方法有什么用
- Javascript:JSHint:应为赋值或函数调用,但实际看到的却是表达式
- HTML5(Bootstrap)通过函数调用运行动画
- 函数调用不起作用
- 函数中的Javascript函数调用