`
joshokn
  • 浏览: 103424 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

'Function Object' in js

阅读更多
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!
    }
   
}


分享到:
评论

相关推荐

    js中判断Object、Array、Function等引用类型对象是否相等.docx

    ### JavaScript中判断Object、Array、Function等引用类型对象是否相等 #### 引言 在JavaScript编程中,经常需要比较不同对象之间的等价性。对于简单类型(如数字、字符串等),可以直接使用`==`或`===`进行比较。...

    javascript面向对象编程指南 2nd

    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, ...

    JavaScript Functional Programming for JavaScript Developers (PDF, EPUB, MOBI)

    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 ...

    iphone javascript call objectc method in uiwebview

    [bridge callJavaScript:jsCall]; ``` 4. **实现 JavaScript 调用 Objective-C**:对于反向调用,即 JavaScript 调用 Objective-C,我们需要监听 `UIWebView` 的 `shouldStartLoadWithRequest` 或 `WKWebView` 的...

    Sortable前端框架

    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中的对象复制(Object Clone)时,首先需要明确JavaScript中的对象复制分为浅复制(Shallow Copy)和深复制(Deep Copy)。浅复制指的是创建一个新对象,这个对象有着原始对象属性值的一份精确...

    Professional JavaScript for Web Developers英文版

    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 JSON.JS JSON_PARSE.JS

    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

    JavaScript中的`Object.extend`是一个用于实现对象继承的关键技术。它允许你将一个对象的属性和方法扩展或复制到另一个对象中。在这个过程中,我们可以探讨几个关键概念:对象、类、原型(prototype)、实例成员和...

    js.rar(react初学者简单测试用babel.js,react-development.js,react-dom.js)

    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]...

    json3.js开发板和生产版本

    JSON.parse(jsonstr); 对JSON字符串反序列化成JSON对象;JSON.stringify(jsonobj); 将JSON对象序列化成JSON字符串,传到后台再进行反序列化, 官方地址 ...相对json.js与json2.js json3.js做了很多优化,建议使用

    JavaScript对象拷贝与Object.assign用法实例分析

    在JavaScript中,通过简单赋值或使用`Object.assign()`方法可以实现浅拷贝。例如: ```javascript let objA = {name: '对象A', content: '我是A'}; let copyA = objA; ``` 在这个例子中,`copyA`只是`objA`的一个...

    JS实现的Object数组去重功能示例【数组成员为Object对象】

    为了解决这个问题,可以改用`for...in`循环或`Object.keys`,并先对属性进行排序,确保在比较时遵循相同的顺序。 以下是一个简化版的实现,不依赖于jQuery: ```javascript function distinct_arr_element(arr) { ...

    js获取对象,数组所有属性键值(key)和对应值(value)的方法示例

    在JavaScript中,我们可以使用`for...in`循环遍历对象的所有可枚举属性,从而获取键值和对应的值。以下是一个简单的函数`getObjectKeys`,用于获取对象的所有键: ```javascript function getObjectKeys(object) {...

    js如何获取object类型里的键值

    function printObject(obj) { var temp = ""; for (var i in obj) { temp += i + ":" + obj[i] + "\n"; } alert(temp); // 显示对象的键和值 } ``` 在上述代码中,printObject函数可以遍历传入的对象,并打印...

    js如何打印object对象

    js调试中经常会碰到输出的内容是对象而无法打印的时候,光靠alert只能打印出object标示,却不能打印出来里面的内容,甚是不方便,于是各方面整理总结了如下一个函数,能够将数组或者对象这类的结果一一打印出来,...

    JavaScript in 10 Minutes

    ### 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 ...

    JS数组Object.keys()方法的使用示例

    Object.keys(person).forEach(function(data) { console.log('person', data, ':', person[data]); }); ``` 在这个示例中,我们定义了一个名为`person`的对象,它有三个属性:`firstName`、`lastName`和`...

    Programming JavaScript Applications

    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...

Global site tag (gtag.js) - Google Analytics