Here is a paper that introduce the 'Function Object' in javascript.
http://www.permadi.com/tutorial/jsFunc/index.html
我的一点理解:函数并不会和某个实体绑定,函数可以被任何地方使用,可以看成一个数值。并不像java中的类的方法一定是和类名绑定的。(这个思维转换确实有点费劲)
以代码实例述之:
1.
Engine.prototype.start = function(){
var eventEngine = this;
window.setInterval(function(){eventEngine.GetEventsInfo();},5000);
}
与
2.
Engine.prototype.start = function(){
var eventEngine = this;
window.setInterval(eventEngine.GetEventsInfo,5000);
}
差别大了,2中的window.setInterval传得第一个参数只是函数,进入GetEventsInfo()函数体后,this并不指代eventEngine,而在第一个例子中,将这样一个
引用
eventEngine.GetEventsInfo()
操作作了封装,进入GetEventsInfo()函数体内,this就是指代eventEngine了。
3.
Engine.prototype.start = function(){
var eventEngine = this;
window.setInterval('eventEngine.GetEventsInfo()',5000);
}
这是第三种可以实现的做法,因为js会去寻找这样的字符串'eventEngine.GetEventsInfo()',待找到匹配字符串的函数就会调用相应的方法,
这个特性我想不起来叫什么了(也许里面就是做了个判断
window.setInterval(fucntion , time);
if(function=='Function()'){
//...
}else{
//find the String in Function stack;
var result = search('function');
if(result){
//...
}
else{
//error!
}
}
)
分享到:
相关推荐
### JavaScript中判断Object、Array、Function等引用类型对象是否相等 #### 引言 在JavaScript编程中,经常需要比较不同对象之间的等价性。对于简单类型(如数字、字符串等),可以直接使用`==`或`===`进行比较。...
The basics of object-oriented programming, and how to apply it in the JavaScript environment How to set up and use your training environment (Firebug) In depth discussion of data types, operators, ...
Code using the powerful object-oriented feature in JavaScript Master DOM manipulation, cross-browser strategies, and ES6 Understand the basic concurrency constructs in Javascript and best performance ...
[bridge callJavaScript:jsCall]; ``` 4. **实现 JavaScript 调用 Objective-C**:对于反向调用,即 JavaScript 调用 Objective-C,我们需要监听 `UIWebView` 的 `shouldStartLoadWithRequest` 或 `WKWebView` 的...
Sortable is a <s>minimalist</s> JavaScript library for reorderable drag-and-drop lists. Demo: http://rubaxa.github.io/Sortable/ ## Features * Supports touch devices and [modern]...
在深入探讨JavaScript中的对象复制(Object Clone)时,首先需要明确JavaScript中的对象复制分为浅复制(Shallow Copy)和深复制(Deep Copy)。浅复制指的是创建一个新对象,这个对象有着原始对象属性值的一份精确...
fly graphicsJavaScript API changes in HTML5how browsers handle JavaScript errors and error handlingfeatures of JavaScript used to read and manipulate XML datathe JSON data format as an alternative to ...
json2.js: This file creates a JSON property in the global object, if there isn't already one, setting its value to an object containing a stringify method and a parse method. The parse method uses ...
JavaScript中的`Object.extend`是一个用于实现对象继承的关键技术。它允许你将一个对象的属性和方法扩展或复制到另一个对象中。在这个过程中,我们可以探讨几个关键概念:对象、类、原型(prototype)、实例成员和...
return t.m=e,t.c=r,t.p="",t(0)}(function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(typeof e[t]){case"function":break;case"object":e[t]=function(t){var r=t.slice(1),n=e[t[0]...
JSON.parse(jsonstr); 对JSON字符串反序列化成JSON对象;JSON.stringify(jsonobj); 将JSON对象序列化成JSON字符串,传到后台再进行反序列化, 官方地址 ...相对json.js与json2.js json3.js做了很多优化,建议使用
在JavaScript中,通过简单赋值或使用`Object.assign()`方法可以实现浅拷贝。例如: ```javascript let objA = {name: '对象A', content: '我是A'}; let copyA = objA; ``` 在这个例子中,`copyA`只是`objA`的一个...
为了解决这个问题,可以改用`for...in`循环或`Object.keys`,并先对属性进行排序,确保在比较时遵循相同的顺序。 以下是一个简化版的实现,不依赖于jQuery: ```javascript function distinct_arr_element(arr) { ...
在JavaScript中,我们可以使用`for...in`循环遍历对象的所有可枚举属性,从而获取键值和对应的值。以下是一个简单的函数`getObjectKeys`,用于获取对象的所有键: ```javascript function getObjectKeys(object) {...
function printObject(obj) { var temp = ""; for (var i in obj) { temp += i + ":" + obj[i] + "\n"; } alert(temp); // 显示对象的键和值 } ``` 在上述代码中,printObject函数可以遍历传入的对象,并打印...
js调试中经常会碰到输出的内容是对象而无法打印的时候,光靠alert只能打印出object标示,却不能打印出来里面的内容,甚是不方便,于是各方面整理总结了如下一个函数,能够将数组或者对象这类的结果一一打印出来,...
### JavaScript in 10 Minutes: Key Insights for Intermediate and Advanced Programmers #### Introduction "JavaScript in 10 Minutes" is a concise guide that aims to provide intermediate to advanced ...
Object.keys(person).forEach(function(data) { console.log('person', data, ':', person[data]); }); ``` 在这个示例中,我们定义了一个名为`person`的对象,它有三个属性:`firstName`、`lastName`和`...
With this digital Early Release edition of Programming JavaScript Applications, you get the entire book bundle in its earliest form—the author's raw and unedited content—so you can take advantage of...