调用某个js方法里的方法 |
您所在的位置:网站首页 › javascript如何调用方法 › 调用某个js方法里的方法 |
var a = function(){
function b(){...}
function c(){...}
}
如何调用了a方法里的c方法,而不会调用到b方法,如果实例化a方法的话,b方法是会被执行的。 解决方案: 1 var a = function() { function b() {...} function c() {...} return { b: b, c: c } } var obj = a(); obj.c();2 var a = (function(){ var a = { b:function(){ console.log('b'); }, c:function(){ console.log('c'); } } return a; })(); a.c();//3 用闭包挂载到全局? (function(window){ var a = window.a = {}; a.b = function(){...} a.c = function(){...} })(window);调用的话,直接a.b() 即可。 4 这样写感觉有点坑, 写的js最好用对象的方法. // 构造对象a a有方法b和c var a = { b: function() {document.write('b')}, c: function() {document.write('c')} } // 调用函数 a.b(); a.c();有些概念对我是模棱两可的,我觉得楼主提了个好问题,帮我重新疏理了一下盲点。 先说我的解决方法: var temp=function a(){ this.b=function b(){ console.log('b'); } this.b=function c(){ console.log('c'); } } var t=new temp(); t.b();知识点疏理, 1.函数内部的变量又称私有变量或私有函数,是在外部访问不到的 function Test(){ var color = "blue";//私有变量 var fn = function(){} //私有函数 }2.函数的属性称为静态变量,函数实例化的对象(var f=new fn();)无法访问原型的静态变量 function Obj(){} Obj.num = 72;//静态变量 Obj.fn = function(){} //静态函数 alert(Obj.num);//72 alert(typeof Obj.fn)//function var t = new Obj(); alert(t.name);//undefined alert(typeof t.fn);//undefined3.构造函数本身是无法访问其自身的值,实例化对象可以, function Obj(){ this.a=[]; //实例变量 this.fn=function(){ //实例方法 } } console.log(typeof Obj.a); //undefined console.log(typeof Obj.fn); //undefined var o=new Obj(); console.log(typeof o.a); //object console.log(typeof o.fn); //function我大概看了一下上面的解决方法,有函数返回值,构造对象,也有用闭包挂载到全局的。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |