jsContext全局函数调用与对象函数调用、evaluateScript

evaluateScript:兼具js加载(生成具体的上下文)(函数与通用变量的加载),与函数执行的功能;

函数调用的方式有两种:

1)获取函数(对象),然后执行调用:

[context[@"appendString"] callWithArguments:@[@"hello"]];

2)直接在context中执行链式调用?:

[context evaluateScript:@"testFun(‘Greg‘, 18)"];

对象函数调用与上述类似,只是添加了对象限定:

//创建Person类的对象,将他赋值给js对象
Person *person=[Person new];
person.personName = @"Greg";
person.age = 27;
context[@"person"]=person;

//可以调用获取PersonProtocol暴露的内容
NSString *personName = [[context evaluateScript:@"person.personName"] toString]; //"Greg"
NSString *personName1 = [[context evaluateScript:@"person.queryPersonName()"] toString]; //"Greg"
时间: 2024-11-04 23:37:42

jsContext全局函数调用与对象函数调用、evaluateScript的相关文章

android studio2.3.3 模拟器 Jni函数调用C++对象,lldb调试this指针和相关变量显示无效的原因

android studio2.3.3 的版本中 Jni函数调用C++对象,对象调用相关的成员函数, lldb调试,变量跟踪窗口,this指针和相关变量显示无效的原因,但这些参数实际是有效的,只是debug lldb调试环境出错. 原因是模拟器选择  x86 架构的就会出现问题 模拟器选择arm 架构的 this指针就会正确显示,这个问题的原因还需要继续查找. 所以说尽量用真机调试,不要用模拟器来调试.

前端JS面试题汇总 Part 3 (宿主对象与原生对象/函数调用方式/call与apply/bind/document.write)

原文:https://github.com/yangshun/front-end-interview-handbook/blob/master/questions/javascript-questions.md 最近将持续翻译JavaScript面试题,希望对各位有所帮助. (文章中斜体字部分为译者添加) 目录: Part 1(事件委托/this关键字/原型链/AMD与CommonJS/自执行函数) Part 2 (null与undefined/闭包/foreach与map/匿名函数/代码组织)

C/C++之全局、static对象/变量的初始化问题

关于全局.static对象/变量的初始化问题 1. 全局变量.static变量的初始化时机:main()函数执行之前(或者说main中第一个用户语句执行之前). 2. 初始化顺序. 1)全局对象.外部static对象 a)同一编译单元(同一源文件)中,按照对象/变量的定义顺序初始化. b)不同编译单元,C++标准未保证初始化先后顺序,只保证都在main()之前初始化完成. 2)函数内部local static变量,在该函数调用过程中第一次遇到该static变量时初始化.      基于以上观点,

全局方法&Number对象

//js端 function println(string){ document.write(string+"<br/>"); } //html端 <script type="text/javascript" src="out.js"></script> <script> /* *global的全局方法*/println("123"); println(parseInt(&quo

SetTmer函数调用 、取时间函数调用 、计时函数

SetTmer函数调用 #include <iostream> 取时间函数调用 计时函数

node.js常用的全局成员和对象

一般可以直接调用的对象,我们称之为全局对象: 一下对象都加了console.log(),以在运行环境中的显示效果为标准 //包含文件名称的全路径:    console.log(_filename); //文件的路径 (不包含文件名):    console.log(_dirname); //定时函数: var time = setTimeout(function(){ console.log("hi"); },1000); clearTimeout(time);           

全局的OkHttpClient对象

Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient,HttpURLConnection相对来说比HttpClient难用,google自从2.3版本之后一直推荐使用HttpURLConnection,并且在6.0版本的sdk中直接删掉了HttpClient类. 但是, 上面两个类库和OkHttp比起来就弱爆了, 因为OkHttp不仅具有高效的请求效率,并且节省宽带, 还提供了很多开箱即用的网络疑难杂症解决方案.(据说Android4.4的源码中可

嵌入式linux C++语言(四)——类与对象

嵌入式linux C++语言(四)--类与对象 类的设计和使用如下: #include <iostream>#include <stdlib.h>#include <stdio.h>#include <string.h>using namespace std;class Stack{public:    Stack(int size=1024);    ~Stack();    void init();    bool isEmpty();    bool

函数调用的四种方式

在JavaScript中一共有4种调用模式: 函数调用模式 方法调用模式 构造器调用模式 间接调用模式,通过call()和apply()进行 1. 函数调用模式 普通函数调用模式,如: function printProps(o){ -- } printProps({x:1}); 在一个调用中, (1)每个参数表达式计算的结果作为实参传递给声明函数时定义的形参: (2)this被绑定到全局变量 var myObject = {value:1}; value = 2; myObject.print