`
- 浏览:
591347 次
-
函数中定义 var self = this 的作用
function Class1(){
//self(self被附加到了对象上) self只对私有成员可见(能.点出来 i aa() .点不出来public_dd()) var self = this; this.i = 1; this.aa = function(){ this.i ++; alert(this.i); } var private_bb = function(){ alert(self.i); //self.public_dd();//错误 self无法从外部访问,同时self也无法被这个对象的公共方法所访问 //aa();//错误 私有方法要通过self调用 public_dd();//可以直接调用 不能用self.public_dd(); self.aa(); } this.cc = function(){ private_bb();//私有函数 } //可以直接调用 // 对象的公共方法 function public_dd() { self.aa(); alert("dd"); } } var o = new Class1();//调用Class1构造函数不运行++(初始化没有调用不运行) o.cc();//运行++ document.write(o.i);//return 2//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////var self = this //指代函数内部的执行环境在函数Class1中通过 this.方式定义的属性和方法,能被实例o直接访问和调用,其他的属性和方法则是函数Class1的私有属性和方法,只能被内部访问和调用,通过self.或this.方式.
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
为了保持内部函数中 `this` 的正确引用,通常会将外部函数中的 `this` 保存在一个局部变量中(如 `that` 或 `self`),并在内部函数中使用这个变量。例如: ```javascript var name = "this is window"; // 定义...
17. **函数定义**: - 使用 `function` 关键字定义函数。 - 示例:`function sayHello(name) { console.log("Hello " + name); }`. 18. **表单操作**: - 表单可以通过 `document.forms[index]` 访问。 - 示例:`...
在传统的函数定义中,`this`通常被设置为调用该函数的对象,如在方法调用中。例如,在`Countdown`类的`start`方法中,`setInterval`回调中的`this`不再指向`Countdown`实例,而是指向全局对象(在浏览器中通常是`...
var self = this; var name = 'world'; self.sayhello = function (_name) { return 'hello' + (_name || name); }; }; ``` **分析**: - **初始化**:与之前相同,确保`namespace`存在。 - **定义命名空间**...
这种方法通常涉及定义一个函数,然后在函数内部声明变量和方法。例如: ```javascript var namespace = namespace || {}; namespace.hello = function() { this.name = 'world'; }; namespace.hello....
var self = this; this.element.onmousedown = function(event) { // 记录初始信息 self.startX = event.clientX; self.startY = event.clientY; self.startLeft = self.element.offsetLeft; self.startTop =...
var self = this; document.getElementById('province').addEventListener('change', function() { self.updateCity(); }); }; PCAS.prototype.updateCity = function() { // 根据选中的省份更新城市下拉菜单 ...
- 为了在嵌套函数中保留外部`this`的值,可以使用`var self = this;`保存在局部变量中。 - 构造函数调用时,新对象会继承构造函数的`prototype`属性,并且`new`操作符会改变`this`的指向。 理解并熟练运用这些...
1. **函数声明**:最传统的函数定义方式,使用`function`关键字。 ```javascript function func1(...args) { // 函数体 } ``` 2. **函数表达式**:可以将函数赋值给变量,分为命名函数表达式和匿名函数表达式...
var self = this; return function() { var obj = Array.prototype.shift.call(arguments); return self.apply(obj, arguments); }; }; // 使用示例 var push = Array.prototype.push.uncurrying(); // 测试...
var self = this; var bindings = this.$el.querySelectorAll('[data-bind]'); bindings.forEach(function(binding) { var exp = binding.getAttribute('data-bind'); new Watcher(self, exp, function() { ...
在这个代码中,我们定义了一个名为`Countdown`的构造函数,它接受一个结束时间(字符串格式)作为参数。`start`方法用于启动倒计时,每秒钟更新一次页面上的倒计时显示。当倒计时结束时,会自动清除定时器,并更新...
当 `this` 出现在一个非箭头函数中时,它的值取决于函数是如何被调用的。在这个例子中,`this` 指向 `myObject`。然而,当在一个匿名函数内部引用 `this` 时,它通常指向全局对象或 `undefined`(严格模式下)。通过...
`this`的值不是在函数定义时确定,而是在函数执行时根据函数的调用方式动态绑定。下面将详细讨论几种常见的`this`用法。 1. **全局函数中的`this`**: 当函数作为全局函数调用时,`this`会指向全局对象。在浏览器...
- 函数定义的基本格式为:`function functionName([参数列表]) { 函数体 }` - **示例**: ```javascript function greet(name) { console.log("Hello, " + name); } greet("John"); // 输出 "Hello, John" `...
优雅的定义javascript函数 用法 使用this var index = def ( function index ( ) { /** * @rule (Array arr [, Int num]) -> * */ return this . arr [ this . num ] ; } ) ; index ( [ 1 , 2 , 3 ] , 1 ) ==...
var self = this; setInterval(function() { self.date.setSeconds(self.date.getSeconds() + 1); console.log(self.formatTime()); }, 1000); }; ``` 在实际应用中,你可能会将这个插件与其他UI元素结合,如...
var self = this; var intervalId = setInterval(function() { var currentTime = new Date(); var remainingTime = self.targetTime - currentTime; if (remainingTime <= 0) { clearInterval(intervalId);...
JS中的函数定义 函数定义的基本结构如下: ```javascript function functionName([参数列表]) { // 函数体 } ``` #### 18. 当文件中出现多个form表单时 可以使用 `document.forms[index]` 访问特定的表单: ```...