js 对象外部访问或者调用问题_javascript技巧

以下是我的代码:

<script>
abc = function(){
this.a;
this.b;
}
abc.prototype = {
getData:function(){
var c = function(num){
alert(num);
this.b = num;
}
c('12345');
},
clearData:function(){
this.getData();
alert(this.b);
}
}
var d = new abc();
d.clearData();
</script>
这部分中:
var c = function(num){
alert(num);
this.b = num;
}
c('12345');
我想把得到的num传给开始定义好的this.b; 但这样是不行的,不知怎么写一下可以? 现在的格式不能改,能改的只有 c = function(){ 这里边的东西}

可以这样理解:引用:
function functionName(arg){……};

functionName(argvalue);以这种形式使用函数,是大家最熟悉的。

“()”(括号)可以把包裹在其中的语句变成一个“名词”。引用:
(function(形参){函数体})把一个匿名函数包裹在括号里,使它对于代码的其他部分来说,就相当于是一个“名词”。

于是,引用:
(function(形参){函数体})(实参)就和上面最普通的引用:
函数名(实参)的用法一样容易理解了,是定义了一个匿名函数并且立即调用的意思。引用:
c = (function(which){return function(num){alert(num);which.b = num}})(this)定义了一个匿名函数并且立即调用,这个函数返回一个匿名函数,返回的函数被赋名为c。
这里把 this对象 作为实参传递给 形参which,就把 abc实例对象 的引用提供给内部的匿名函数了。
于是c就成为一个能够访问 abc实例对象 的函数了。
技术文,偶喜欢
也可以这样写

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

用bind方法

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

时间: 2024-09-15 01:19:02

js 对象外部访问或者调用问题_javascript技巧的相关文章

理解js对象继承的N种模式_javascript技巧

本文分享了js对象继承的N种模式,供大家参考. 一.原型链继承 function Person(){}; Person.prototype = { constructor: Person, name: "Oliver" }; function People(){}; People.prototype = new Person(); People.prototype.constructor = People; People.prototype.sayName = function(){

js对象浅拷贝和深拷贝详解_javascript技巧

本文为大家分享了JavaScript对象的浅拷贝和深拷贝代码,供大家参考,具体内容如下 1.浅拷贝 拷贝就是把父对像的属性,全部拷贝给子对象. 下面这个函数,就是在做拷贝: var Chinese = { nation:'中国' } var Doctor = { career:'医生' } function extendCopy(p) { var c = {}; for (var i in p) { c[i] = p[i]; } c.uber = p; return c; } 使用的时候,这样写

Js+Flash实现访问剪切板操作_javascript技巧

最近需要遇到了这个问题点击按钮复制链接的功能果断度娘谷哥.最后找到得解决方案ZeroClipBoard一款开源得js+Flash实现得剪切板操作 但是搜寻了众多例子之后发现大多都是介绍一个页面只有一个固定的复制操作 而我得需求是这样 一个动态Repeater动态加载出各个地址和复制按钮. 这个解决方案得原理是: 拿js动态加载一个透明flash.然后遮盖到你要点击得按钮上面,之后在给这个flash得承载元素上绑定事件动态把要复制得值传递到flash中,用flash访问剪切板. 这时候就出现这么一

显示js对象所有属性和方法的函数_javascript技巧

要想看到实际效果,可以先声明一些属性跟方法,否则是看不到,仔细往下看有例子的. 复制代码 代码如下: function ShowObjProperty(Obj) { var PropertyList=''; var PropertyCount=0; for(i in Obj){ if(Obj.i !=null) PropertyList=PropertyList+i+'属性:'+Obj.i+'\r\n'; else PropertyList=PropertyList+i+'方法\r\n'; }

javascript嵌套函数和在函数内调用外部函数的区别分析_javascript技巧

我们都知道在函数中定义的局部变量在声明他的函数体以及其嵌套的函数内始终是有定义的,并且在函数的作用域链上始终会有个对象指向全局对象,使函数能够访问到全局变量. var ga = 'global'; var func = function() { var la = 'local'; return function() { return function() { return function() { alert(la);alert(ga); } } } } a = func(); a()()();

JS HTML5拖拽上传图片预览_javascript技巧

1.文件API:(File API) file类型的的表单控件选择的每一个文件都是一个file对象,而FileList对象则是这些file对象的集合列表,代表所选择的所有文件.file对象继承于Blob对象,该对象表示二进制原始数据,提供slice方法,可以访问到字节内部的原始数据块.总之,file对象包含与FlieList对象,而file对象继承于Blob对象! 各对象的相关属性关系: FileReader接口: 由图可知:HTML5还提供了FileReader接口:用于将文件读入内存,并读取

javascript使用闭包模拟对象的私有属性和方法_javascript技巧

最近因为做了一个项目,其中涉及到了js私有方法,这个概念在其语言里面是很常见的,很多语言都有private这个关键字,只要在一个类的前面加上private就表示申明了一个私有方法,但是javascript在面向对象的方面没有那么多的特征,他没有专门的private关键字,.要做到这一点就必须使用js自己的一些特性来变相的完成. 首先javascript里面有一个高级特性叫闭包,简单的说js的闭包可以理解成是一种现象或者特性,一般出现在两个函数嵌套的情况下,看例子: function a(){ v

js字符串操作总结(必看篇)_javascript技巧

字符方法 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>字符方法</title> </head> <body> <script type="text/javascript"> /* charAt方法和charCodeAt方法都接收一个参数,基于0的

js实现跨域的多种方法_javascript技巧

从域说起 域: 域是WIN2K网络系统的安全性边界.我们知道一个计算机网最基本的单元就是"域",这一点不是WIN2K所独有的,但活动目录可以贯穿一个或多个域.在独立的计算机上,域即指计算机本身,一个域可以分布在多个物理位置上,同时一个物理位置又可以划分不同网段为不同的域,每个域都有自己的安全策略以及它与其他域的信任关系.当多个域通过信任关系连接起来之后,活动目录可以被多个信任域域共享域树:域树由多个域组成,这些域共享同一表结构和配置,形成一个连续的名字空间.树中的域通过信任关系连接起来