步骤
找到 js 调用 js 的方法。
增加方法调用的声明。 请参考 如何生成 .d.ts 。
示例
js 内的方法
function callJsFunc(msg) { console.log("msg from egret : " + msg)}ts 内声明
declare function callJsFunc(msg:string)//可以放在 ts 文件内(建议在顶部或者底部,中间的没试过)或者单独放到一个 .d.ts 文件中,请不要放在其他类型的文件内。msg 类型根据函数体判断。ts 内调用
callJsFunc("hello js")输出
msg from egret : hello js总结:在 js 调用 js 的基础上增加声明。其他的比如变量等,也是按上面步骤来实现。
js 调用 ts
js 调用 ts 其实就是 ts 调用 ts,由于 ts 调用 ts 可能会有同模块下的省略写法,因此只要使用不同模块下的调用来写即可。
步骤
找到非同一模块下 ts 的调用(比如 example.A.CallEgretFunc("hello"))。
完全按上面调用的方式来写 (比如上面的 example.A.CallEgretFunc("hello"))。
示例
ts 内的方法
module exampleA { export class A { public callEgretMethod(msg:string):void { console.log("method msg from js : " + msg) } public static CallEgretFunc(msg:string):void { console.log("static msg from js : " + msg) } }}非同一模块下 ts 调用
module exampleB { export function b() { //调用方法 var a:exampleA.A = new exampleA.A() a.callEgretMethod("method") //调用静态函数 exampleA.A.CallEgretFunc("function") }}js 内调用
var a = new exampleA.A()//去掉 a 的类型a.callEgretMethod("method")exampleA.A.CallEgretFunc("function")输出
method msg from js : methodstatic msg from js : function var obj = function() {this.a = function(arg){alert(arg)}
this.b = function(arg){alert(arg+1)}
}
var fn = new obj
fn.a('TEST')
取消首页编程手机软件硬件安卓苹果手游教程平面服务器首页 >网络编程 >JavaScript >javascript技巧 >js构造函数constructor和原型prototypejs构造函数constructor和原型prototype原理与用法实例分析发布时间:2020-03-02 09:43:39 作者:叶落森本文实例讲述了js构造函数constructor和原型prototype原理与用法。分享给大家供大家参考,具体如下:所有引用类型(函数,数组,对象)都拥有__proto__属性(隐式原型)所有函数拥有prototype属性(显式原型)(仅限函数)原型对象:拥有prototype属性的对象,在定义函数时就被创建__proto__, prototype和constructor下面这三个属性的定义非常重要,始终贯穿在原型中。prototype:此属性只有构造函数才有,它指向的是当前构造函数的原型对象。__proto__:此属性是任何对象在创建时都会有的一个属性,它指向了产生当前对象的构造函数的原型对象,由于并非标准规定属性,不要随便去更改这个属性的值,以免破坏原型链,但是可以借助这个属性来学习,所谓的原型链就是由__proto__连接而成的链。constructor:此属性只有原型对象才有,它默认指回prototype属性所在的构造函数。构造函数的特点: a:构造函数的首字母必须大写,用来区分于普通函数 b:内部使用的this对象,来指向即将要生成的实例对象 c:使用New来生成实例对象function定义的对象有一个prototype属性,使用new生成的对象就没有这个prototype属性(Person是一个对象)Person是一个对象,它有一个prototype的原型属性(因为所有的对象都一prototype原型!)prototype属性有自己的prototype对象,而pototype对象肯定也有自己的construct(构造)属性,construct属性有自己的constructor(构造函数)对象,神奇的事情要发生了,这最后一个